我有一个设置,我想将在引擎内部和外部使用的代码分解为模块。但是,当运行引擎spec
虚拟测试时,虚拟无法在我的主应用程序的lib文件夹中找到该模块(我认为它的范围是引擎的目录)并且rake aborts。
这是一般设置:
这将位于主应用程序的lib文件夹(my_module.rb
)中:
module MyModule
def module_function
end
end
这将位于主应用程序的模型目录中:
require 'my_module'
class myModel
include MyModule
module_function()
end
这将在引擎中:
require 'my_module'
class MyEngineModel
include myModule
module_function()
end
然而,在假人的耙子设置上,它疯狂地给了我一个load error
的引擎规格:
rake aborted!
LoadError: cannot load such file -- my_module
答案 0 :(得分:0)
引擎在主应用程序之前加载。因此,如果您的模块要在引擎和应用程序中使用,我建议您将其放在Engine的lib/
文件夹中,而不是应用程序的lib文件夹中。
您可以找到更多信息here