0

私はモンゴイドモデルを持っています

class RequestResponse
  include Mongoid::Document
  field :body, type: String
  field :job_id, type: Fixnum
  field :completed, type: Boolean
end

Railsキャストによると、libフォルダーにクラスがあります

class MyJob < Struct.new(:session, :url, :r_id)
  def perform
    rr = RequestResponse.find(r_id)
    session = YAML.load session
    rr.body = session.get(url).body
    rr.completed = true
    rr.save
  end
end

コントローラーのどこかを呼び出しました

rr = RequestResponse.new
rr.save
Delayed::Job.enqueue(MyJob.new(session.to_yaml, url, rr.id),3)

私は見ることができます

rake jobs:work
1 jobs processed at 19.3392 j/s, 0 failed ...

そして、私がチェックした場合、結果はrrのテーブルに保存されません

rr.body

それはまだnillです 誰かが私を助けることができます 事前に感謝します

4

2 に答える 2

0

selfStruct.new は、またはのいずれかを使用してアクセスできるインスタンス変数を作成します。@

これを試して

class MyJob < Struct.new(:session, :url, :r_id)
  def perform
    rr = RequestResponse.find(@r_id)
    session = YAML.load @session
    rr.body = session.get(@url).body
    rr.completed = true
    rr.save
  end
end
于 2013-06-26T16:25:57.033 に答える