我们目前正在使用Ruby 1.9.3,Rails 3.1(我知道,我们正努力升级所有应用程序)。
我们正在使用一个模块(让我们称之为' OurModule'添加一种方法(让我们将它称为'OurAddOnMethod'到模型在gem中定义(让我们称之为' GemModel')。我们将该模块文件存放在' config / initializers'目录中。
该文件定义模块,然后调用它将其包含在模型中:
# Include the extension
GemModel.send(:include, OurModule)
在开发时,事情总体上运作良好,但是我们会定期得到一个错误,基本上会说“未定义的方法' OurAddOnMethod'在' GemModel'"。重新启动服务器可以解决问题(暂时)。
我假设发生这种情况是因为模型会定期重新加载,并且在开发环境中进行了更改,并且看起来初始化程序也不会在那时重新加载。看起来这可能不是最好的设置方式;处理是非常令人沮丧的。
任何人都可以通过更好的方式来启发我吗?
答案 0 :(得分:0)
我最终使用包装以下代码,并将其保留在初始化器中:
ActionDispatch::Callbacks.to_prepare do
# configure stuff or initialize
end
我感觉很糟糕,我完全错过了这个似乎完全覆盖我的问题(链接到我使用的答案):