从 resque 作业中的模块访问方法


嗨,我

必须从 resuq 作业中的模块访问一个方法,我不断收到此错误:方法无法访问。我是否错误地使用了模块?

class TestResqueJob
 include TestModule
 @queue = :test_resque
 def self.perform(params)
  method_from_module
 end 
end 
module TestModule
  def method_from_module
    puts "test"
  end 
end 

您似乎正在尝试在公共方法中调用实例方法。如果您希望您的模块方法是类方法更改为类方法include更改为extend

class TestResqueJob
 extend TestModule
 @queue = :test_resque
 def self.perform(params)
  method_from_module
 end 
end 

这将使您在模块中定义的所有方法都成为类方法

最新更新