2012-01-05 3 views
2

私はRailsプロジェクトにバンドルする宝石の中に、たくさんのモデルを定義しています。 app/modelsのファイルに保持されているコードでこれらのモデルクラスをmonkeypatchし、通常どんなリクエストでもapp/models/* reloadをしたいと思っています。アプリのMonkeypatch宝石ベースのモデルは、アプリのクロールを遅らせることなく、devでリロードを確実にしますか?

私は実際に上記の問題を解決しました。私の今の問題は、解決策は私のアプリケーションが遅くなることです - 開発者モードで2〜2秒前にロードするのに30〜40秒かかる画面。ここに私がイニシャライザで持っているものは次のとおりです:

 
model_init = lambda{ 
    path = File.expand_path(File.dirname(__FILE__) + "../../../app/models") 

    Dir.glob("#{path}/*.rb").each do |path| 
    require path 
    end 
} 

ActionDispatch::Callbacks.to_prepare(&model_init) 

誰も私がこれをスピードアップする方法についての情報を与えることはできますか?私はRails 3.1.3を使っていますが、3.2.0-rc1のactive_reloadがこれを解決できるかどうかは、アップグレードしてもうれしいです。助けをあらかじめありがとう!

答えて

1

Rails 3.1には既知のバグがあります。すべてのアセットはリクエストで再コンパイルされます。したがって、アプリに多くのアセットがある場合、devモードでは応答が遅くなります。これは3.2で修正されています。

関連する問題