我的控制器上有这个职位:
def action1
#code here
order = Order.find(params[:id])
Delayed::Job.enqueue(ExpiredMessage.new(order), 2, 2.days.from_now)
#code here
end
我在myapp/app/jobs
里面有一个名为expired_message.rb
的文件中的自定义作业,其中包含下一个内容:
class ExpiredMessage < Struct.new(:order)
def perform
#code to run here for example order.save
order.any_method
end
end
我只想在perform method
if order.status == "PA"
如何在保存订单之前运行挂钩以检查我的自定义作业上的if order.status == "PA"
?
否则,如果order.status!=“PA”,我想在执行此作业之前删除作业。
非常感谢!
答案 0 :(得分:1)
如果要从数据库中检查对象的状态 - 请在其上调用reload
。否则,只需像检查其他任何对象一样检查它:
def perform
order.any_method if order.reload.status == "PA"
end