4

to_prepare イベントを新しい Rails 3.2.1 プロジェクトで動作させようとしています。以下を配置しました。

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

config/initializers の下の初期化子に。ドキュメントhereによると、このブロックは、開発モードで実行している場合はアプリへのすべてのリクエストで実行され、本番環境では 1 回だけ実行されます。私は開発モードで作業していますが、このブロックはリクエストごとに実行されるわけではなく、アプリケーションを起動したときにのみ実行され、二度と実行されません。

以下は、アプリをロードしたときの出力のサンプルです。

   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

後続のリクエストを行うと、「here i am...」という文字列は表示されず、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 に答える