Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 阻止Rails在开发模式下卸载模块_Ruby On Rails_Dependencies_Reloadable_Development Mode - Fatal编程技术网

Ruby on rails 阻止Rails在开发模式下卸载模块

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卸载模块负载,并及时重新加载以满足新请求。这通常是一个很好的行为,因为这意味着您在更

我的Rails应用程序中有一个模块位于/lib中

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'