2012-05-18 62 views
5

Rails 3.2.3。我的自動加載路徑中有一個帶有/lib的Rails應用程序。我的一個庫文件是需要一堆文件,像這樣強制重新加載自動加載庫文件所需的庫文件

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與rails的自動加載系統無法很好地發揮作用。

require_dependency會做幾乎所需的事情,但會將自動加載系統保留在循環中,以便在請求結束時將加載的常量卸載。您可能需要確保文件在導軌的自動載入路徑中

+0

一旦我刪除'需要'重新加載自動發生如果模塊文件改變。謝謝@Frederick Cheung –

0

您必須添加或取消註釋該行。

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

到您的應用程序類中的config/application.rb中