在下面的代码中,我可以很好地致电BackgroundJob.starting(job_script)
。但是,例如,当我尝试调用JobScriptHelper.starting(RemoveBotReferralCodes)
时,我一直没有遇到方法错误。 JobScriptHelper
位于lib文件夹中,而RemoveBotReferralCodes
位于名为script的对等文件夹中。知道发生了什么事吗?
module JobScriptHelper
def starting(job_script)
puts "#{Time.now.strftime('%c')}: #{job_script.name} - starting"
end
end
require 'job_script_helper'
class BackgroundJob < ActiveRecord::Base
extend JobScriptHelper
end
#!/usr/bin/env ruby
require File.expand_path('../../../config/boot', __FILE__)
require File.join(File.expand_path('../../../config/environment', __FILE__))
require 'job_script_helper'
class RemoveBotReferralCodes
def self.remove
# ....
end
end
JobScriptHelper.starting(RemoveBotReferralCodes)
答案 0 :(得分:1)
为了能够致电JobScriptHelper.starting()
,我相信您的方法定义应该是
def JobScriptHelper.starting(job_script)
puts "#{Time.now.strftime('%c')}: #{job_script.name} - starting"
end