Ruby on rails 阻止Rails在开发模式下卸载模块
我的Rails应用程序中有一个模块位于/lib中Ruby on rails 阻止Rails在开发模式下卸载模块,ruby-on-rails,dependencies,reloadable,development-mode,Ruby On Rails,Dependencies,Reloadable,Development Mode,我的Rails应用程序中有一个模块位于/lib中 module MyModule mattr_accessor :the_variable class << self def setup yield this end end end 这是可爱的,它似乎工作(几乎)好 问题在于,在开发模式下,Rails通过ActiveSupport::Dependencies卸载模块负载,并及时重新加载以满足新请求。这通常是一个很好的行为,因为这意味着您在更
module MyModule
mattr_accessor :the_variable
class << self
def setup
yield this
end
end
end
这是可爱的,它似乎工作(几乎)好
问题在于,在开发模式下,Rails通过ActiveSupport::Dependencies
卸载模块负载,并及时重新加载以满足新请求。这通常是一个很好的行为,因为这意味着您在更改代码时不需要重新启动localhost服务器
但是,这也会清除我初始化的变量
变量,当下一个请求进入初始化器时(显然)不会再次运行。最终的结果是后续请求最终会有MyModule。_变量
设置为nil
,而不是我正在寻找的42
我正在尝试解决如何阻止Rails在请求结束时卸载我的模块,或者找到另一种方法为我的模块干净地提供特定于环境的配置
有什么想法吗-/ 在您的环境文件中,在引用MyModule之前,请使用require加载该文件
require 'my_module'
这绕过了动态依赖项加载机制。我确信我以前尝试过,但我又尝试了一次,现在似乎效果很好
require 'my_module'