2012-05-18 6 views
5

Rails 3.2.3。私は/libのRailsアプリを私のオートロードパスに持っています。私のライブラリファイルの1つは、そういうファイルの束を必要としています自動ロードされたライブラリファイルに必要なライブラリファイルの強制リロード

Dir[Rails.root.join("lib/foo/*.rb")].each { |f| require f } 

私がそれらを変更すると、それらのファイルはリロードされません。たとえば、/lib/foo/bar.rbを変更した場合、その変更を確認するためにサーバーを再起動する必要があります。誰でも方法を提案できるので、それぞれのリクエストで適切に再読み込みされますか?

答えて

3

あなたはオートロードパスにこれらのファイルがある場合:

config.autoload_paths += %W(#{config.root}/lib) 

を、あなたがそれらを必要とする必要はありません。 thisで試しましたか?

+1

あなたは末尾に括弧を持っています! – Excalibur

3

requireレールのオートローディングシステムではうまく動作しません。

require_dependencyは、必要な処理を行いますが、読み込み済みの定数がリクエストの最後にアンロードされるように、オートローディングシステムをループ内に保持します。ファイルがレールのオートロードパスにあることを確認する必要があります

+0

'require 'を削除すると、モジュールファイルが変更された場合に自動的にリロードが行われました。ありがとう@フレデリック・チャン –

0

この行を追加またはコメント解除する必要があります。

config.autoload_paths + =%のW(#{config.root}/libに)設定でアプリケーションクラスに

/application.rb

関連する問題