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