4

スケジュールは実行されていますが、「未定義のメソッド'do_something'」というエラーが発生します。何が正しくないのですか?

レールの使用3。

config / initializers / task_scheduler.rb:

require 'rubygems'
require 'rufus/scheduler'  
scheduler = Rufus::Scheduler.start_new
scheduler.every("10s") do
    JobThing.do_something
end

models / job_thing.rb:

class JobThing < ActiveRecord::Base
    def do_something
        puts "something"
    end 
end
ありがとう

4

1 に答える 1

12

JobThingクラスでインスタンスメソッドを実際に定義したときに、task_schedulerからクラスレベルのメソッドを呼び出そうとしています。クラスメソッドは次のように定義できます。

class JobThing < ActiveRecord::Base
  def self.do_something
    puts "something"
  end
end
于 2011-06-02T18:29:25.910 に答える