における遅延の仕事は、私がモデルでfbLikesをカウントするために遅れた仕事をする必要があるが、私は「未定義send_later()メソッド」のエラーレポートを持っています。モデルのfb_likes関数に遅延した仕事をする方法はありますか?ルビー - モデル
==============================最新=============== ====================================
これは私のプロジェクトで私の最新のコードです。状況は変わりませんが、fb_likesはお気に入り数を表示しません。
[Company.rb] -model
require "delayed_job"
require "count_job.rb"
class Company < ActiveRecord::Base
before_save :fb_likes
def fb_likes
Delayed::Job.enqueue(CountJob.new(self.fbId))
end
end
[CONFIG/LIB/count_job.rb]
class CountJob<Struct.new(:fbId)
def perform
uri = URI("http://graph.facebook.com/#{fbId}")
data = Net::HTTP.get(uri)
self.fbLikes = JSON.parse(data)['likes']
end
end
[制御]
def create
@company = Company.new(params[:company])
if @company.save!
flash[:success] = "New company successfully registered."
----and other more code----
を追加します。定義されていないsend_laterのスタックトレースを追加してください(何もこのメソッドを呼び出すべきではありません) – betamatt
あなたの仕事の実行は、存在しない 'self.fbLikes'にも割り当てられています。ジョブ・クラスにはデータを保存することはできませんし、同様のデータをどこかに保存する必要があります。 – betamatt