의 지연 작업이 나는 모델에 fbLikes를 계산 지연 작업을 할 필요가 있지만 "정의되지 않은 send_later() 메소드"의 오류보고가있다. 모델에서 내 fb_likes 함수에 지연된 작업을 수행 할 수있는 방법이 있습니까?루비 - 모델
============================== 최신 =============== ====================================
이 내 프로젝트에서 내 최신 코드입니다. 상황은 여전히 동일하지만 fb_likes는 좋아요 수를 표시하지 않습니다.
[Company.rb] - 모델
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
[구성/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