2010-07-05 16 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语句放置在每次配置文件应该重新加载(即在某个方法或挂钩内)时执行的地方。

相关问题