我正在尝试调用/ lib文件夹中的模块
module Reports
module MyMod
def test
....Test methods...
end
end
end
在Rails控制台中,使用
调用此方法 include Reports::MyMod; test
在/config.schedule.rb中我试过
every 1.minute do
runner 'Reports::MyMod.test'
runner 'Reports.MyMod.test'
runner 'include Reports::MyMod; conc'
end
这些都不起作用,我如何调用此方法?另外如何从模型中调用此方法?
答案 0 :(得分:0)
似乎您只想将模块用作方法的命名空间。在这种情况下,您可以创建一个类方法:
module Reports
module MyMod
class << self
def test
....Test methods...
end
#more methods
end
end
end
然后你可以称之为:
Reports::MyMod.test
之前你不能这样做的原因是因为它被声明为实例方法而且模块无法实例化。为此,你需要将它包含在一个类中。
确保文件是自动加载的,否则您需要先明确要求它。