3

だから私はペーパークリップファイルのパスを書き直すコードを持っているので、プロジェクトの各開発者はお互いを壊すことなく自分のアップロードへのパスを持つことができますが、これは開発中の

ActiveSupport.on_load(:after_initialize) do

ループ。これは、初期化時にのみロードされることを意味します。問題は、アクティブリロードジェム(レール3.1なので問題ありません)を使用しているため、誰かがモデルを編集すると、モデルがリロードされ、古いペーパークリップパスが使用されることです。

特定のモデルがリロードされるたびにこのコードを実行するにはどうすればよいのでしょうか。

4

2 に答える 2

1

config.to_prepare あなたはそれを内部のブロックで包むことができますconfig/application.rb

config.to_prepare do
  # your code
end

これは、開発中のすべてのリクエストでリロードされますが、本番環境では1回だけです。

于 2012-06-28T22:06:49.673 に答える
0

だから私は上記のライアンの提案を試しましたが、私が思ったように、それはすべてのページのロードで私のコードを実行します...ブエノはありません。

私がやったことは、Active Reloaderから提供されたこのコードを使用することでしたが、Rails3.2で機能するとは思えません。

  ActiveSupport::Notifications.subscribe("active_support.dependencies.clear") do |*args|
    my_code_block
  end

そしてそれは御馳走を働かせました、私はまだ元を保たなければなりませんでした

ActiveSupport.on_load(:after_initialize) do

そこもブロックするので少し醜いですが、うまくいきます!

存在する場合は、よりクリーンなソリューションを求めています。

于 2012-06-29T05:27:26.007 に答える