我什么时候需要在Rails中重启服务器?

时间:2013-07-18 16:41:19

标签: ruby-on-rails ruby

我注意到当我更改诸如html.erb.css之类的rails项目文件时,我不必使用rails -s命令重新启动服务器。

但我想当我想要安装一个新的宝石时,我必须这样做。问题是我正在努力让jQuery工作,所以我厌倦了一直在做rails -s

任何人都可以告诉我,当我修改我的应用程序时,何时需要再次运行rails -s我何时可以负担得起?如果不这样做,我的意思是简单地刷新网页以查看更改。

3 个答案:

答案 0 :(得分:55)

当您需要从一开始就重新加载Rails时,需要重新启动服务器。

如果你要添加或删除宝石,那么是的,你需要重新启动服务器。

如果您更改了ruby的版本,更改Gemfile或从Rails的内部类更改某些内容,则需要重新启动它,否则它应该没问题。但是如果出现意外问题,首先应该重新启动服务器。

此外,在旁注中,如果config.cache_classes设置为false(我认为这是开发的默认设置,但不适用于生产),您只会看到更改仅刷新页面的更改

编辑:

只是为了确保每个人都会注意到,tadman在评论中说了一句明智的事,这里的一般经验法则是对app /或config / routes之外的任何内容进行更改.rb或db /将需要重新启动。

答案 1 :(得分:16)

在开发中,您需要在以下时间重新启动:

  • 您可以在Gemfile
  • 中添加/删除/更新宝石
  • 您可以通过rvm对红宝石环境进行其他更改。
  • 您可以更改config/下的所有文件,但会为您重新加载routes.rb
  • 您手动更改require的所有文件,而不是自动加载。

在生产中,您需要在以下时间重新启动:

  • 您可以更改任何代码或宝石。

N.B。如果需要,可以通过编辑相应的environment/<env>.rb文件来更改这些行为,但默认值是合理的。

答案 2 :(得分:1)

每当安装或更新gem时,如果升级ruby,或者更改某些在引导期间运行的逻辑(如config / boot.rb或config / database.yml),通常需要重新启动服务器。否则,即使您编辑/添加模型/控制器,通常也不会。

旁注:jquery-rails gem可以轻松地将jquery添加到项目中。