我写了一个寻找config/
配置文件的gem。这很好用,但是如果用户更改任何配置,他们必须在我的 gem 加载新配置之前停止程序并重新启动它。这将要求他们在每次更改时重新启动整个 Rails 应用程序,这并不理想。
有没有办法“重新要求”一个文件,以便它重新加载它而不是使用缓存版本。
您可以使用load
而不是require
. 这将加载文件,无论它之前是否已经加载。请注意,load
您需要指定.rb
可选的扩展名require
。就这样require "path/to/myconfig"
变成了load "path/to/myconfig.rb"
。
请注意,这不会取消定义先前配置定义的任何内容。因此,如果配置从 更改$verbose = true; $debug = true
为$verbose = false
then$verbose
将是false
,但在重新加载配置后$debug
仍将是true
。
当然,您需要将load
语句放在每次重新加载配置文件时都会执行的地方(即在某个方法或钩子中)。