无论何时cron作业,Rails调用模块方法

时间:2017-11-19 21:19:37

标签: ruby-on-rails module model cron whenever

我正在尝试调用/ 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

这些都不起作用,我如何调用此方法?另外如何从模型中调用此方法?

1 个答案:

答案 0 :(得分:0)

似乎您只想将模块用作方法的命名空间。在这种情况下,您可以创建一个类方法:

module Reports  
  module MyMod
    class << self 
      def test 
        ....Test methods...
      end

      #more methods
   end
 end
end

然后你可以称之为:

Reports::MyMod.test

之前你不能这样做的原因是因为它被声明为实例方法而且模块无法实例化。为此,你需要将它包含在一个类中。

确保文件是自动加载的,否则您需要先明确要求它。