ActiveJob:回调之间的可访问实例变量

时间:2016-12-19 18:53:46

标签: ruby-on-rails rails-activejob

我的工作中有以下代码段:

before_enqueue do |job|
  # do something
  @car = create_car
end


before_perform do |job|
  # do something
  @car.update(type: 'broken')
end

但是当执行作业时@carnil。有可能以某种方式将实例变量从一个回调传递给第二个回调吗?即使只有ID也没关系。欢呼声。

1 个答案:

答案 0 :(得分:1)

您需要将此实例变量设为job并以此方式访问:

class Car < ActiveJob::Base
  attr_accessor :car
end

然后

before_enqueue do |job|
  # do something
  job.car = create_car
end

before_perform do |job|
  # do something
  job.car.update(type: 'broken')
end