Ruby模块帮助

时间:2011-03-04 02:52:38

标签: ruby-on-rails module

在下面的代码中,我可以很好地致电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)

1 个答案:

答案 0 :(得分:1)

为了能够致电JobScriptHelper.starting(),我相信您的方法定义应该是

def JobScriptHelper.starting(job_script)
  puts "#{Time.now.strftime('%c')}: #{job_script.name} - starting"
end