从另一个类调用模块方法

时间:2013-07-31 16:35:24

标签: ruby ruby-on-rails-3.2

所以我有一个驻留在模型中的ruby文件>服务

module Services

   module SomeJobs


    def mainJob
   ... 
    end
  end
end

如何从位于lib / testfunction.rb

中的ruby类调用该方法

我尝试了以下操作但没有用。任何帮助是欣赏。我正在尝试调试代码。

class TestFunction
  include SomeJobs

  TestFunction::mainJob
end

1 个答案:

答案 0 :(得分:1)

试试这个

module Services    
   module SomeJobs    
    def self.mainJob
    end
  end
end

使mainJob成为一个模块方法,因为模块实例方法永远不会包含在包含类中,它们是模块专用的

class TestFunction
  include Services::SomeJobs
end

现在从

致电

在此TestFunction类之外

TestFunction.new.mainJob

并在此TestFunction类中使用

self.class.new.mainJob

如果要将mainJob作为类方法访问,请使用extend而不是include。

当您使用IDE调试器

尝试在

中要求相对于rails应用程序的文件

TestFunction类