2013-07-18 112 views
37

我注意到,当我更改rails项目文件(如html.erb.css)时,我不必使用rails -s命令重新启动服务器。我何时需要在Rails中重新启动服务器?

但我想当我想安装一个新的宝石我必须。事情是,我试图让jQuery工作,所以我厌倦了所有的时间做rails -s

任何人都可以告诉我什么时候我必须再次运行rails -s当我修改我的应用程序,什么时候我可以承担不这样做?通过不这样做,我的意思是刷新网页以查看更改。

+0

可能的重复[如何在开发模式下重新加载每个请求上的宝石?](http://stackoverflow.com/questions/6191635/how-to-reload-a-gem-on-every-request-in -Development-mode) – Nakilon

回答

50

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

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

如果你改变你的ruby版本,改变你的Gemfile或者改变Rails的内部类,你需要重新启动它,否则它应该没问题。但是如果出现意想不到的问题,重新启动服务器是您应该尝试的第一件事。

此外,在一个侧面说明,你只会看到刚刚刷新如果config.cache_classes设置为false页面的变化(我认为这是发展的默认值,但不用于生产)。

编辑:

只是为了确保每个人都会注意到,tadman说,在评论,这里一般的经验法则一个明智的做法是应用程序/或配置/ routes.rb文件之外更改任何东西或db /将需要重启。

+2

好的回答:-) +1 –

+8

这里的一般经验是对'app /'或'config/routes.rb'之外的任何东西进行更改都需要重新启动。 – tadman

1

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

附注:jquery-rails gem使jquery添加到项目很容易。

15

在发展,你需要时重新启动:

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

在生产需要时重新启动:

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

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

相关问题