4

我试图让 to_prepare 事件在一个新的 Rails 3.2.1 项目上工作。我放置了以下内容:

Rails.application.config.to_prepare do
  puts 'here i am before a request'
end

进入 config/initializers 下的初始化程序。根据此处的文档,在开发模式下运行时,此块应在对应用程序的每个请求上运行,并且在生产中仅运行一次。我正在开发模式下工作,并且此块不会在每个请求上运行,而是仅在我启动应用程序时运行,并且再也不会运行。

以下是我加载应用程序时的输出示例。

   rails s
=> Booting WEBrick
=> Rails 3.2.1 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
here i am before a request
[2012-03-02 20:29:46] INFO  WEBrick 1.3.1
[2012-03-02 20:29:46] INFO  ruby 1.9.2 (2011-07-09) [x86_64-darwin11.2.0]
[2012-03-02 20:29:46] INFO  WEBrick::HTTPServer#start: pid=37897 port=3000

当我发出后续请求时,不显示字符串“我在这里……”,只显示 Rails 日志的常规输出。我所有的搜索都只提到了似乎告诉我以这种方式做事的文档。有什么我可能会丢失的吗?

4

1 回答 1

6

每次重新加载项目时都会调用 to_prepare,因为 Rails 3.2 意味着每次更改文件时。

参考:https ://github.com/rails/rails/issues/7152#issuecomment-8397470

于 2012-09-09T01:09:39.357 回答