我的工作中有以下片段:
before_enqueue do |job|
# do something
@car = create_car
end
before_perform do |job|
# do something
@car.update(type: 'broken')
end
但是当工作完成时,@ car是零.有可能以某种方式将实例变量从一个回调传递给第二个回调吗?即使只有身份证也没问题.干杯.
最佳答案 您需要使这个实例变量脱离作业并以这种方式访问:
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