2010-07-05 42 views
22

我寫了一個gem,看起來在配置文件/配置文件,這個位工作正常,它沒有拋出任何問題,但如果用戶更改任何配置,他們必須停止程序和在我的gem加載新配置之前再次啓動它,這將需要他們在每次更改時都重新啓動一個rails應用程序,這非常理想。需要一個文件,如果它改變

是有沒有「重新規定」文件,以便每個運行它加載它的新鮮,而不是使用緩存的版本

回答

41

可以使用load代替require的方式。這會加載文件,不管它是否已經加載過。請注意,使用load時,您需要指定的可選.rb擴展名。所以require "path/to/myconfig"變成load "path/to/myconfig.rb"

請注意,這不會取消定義以前配置定義的任何內容。因此,如果配置從$verbose = true; $debug = true更改爲$verbose = false,則$verbose將爲false,但$debug在重新加載配置後仍然爲真。

當然,您需要將load語句放置在每次配置文件應該重新加載(即在某個方法或掛鉤內)時執行的地方。

相關問題