class SubJob
field :total_qty
end
class Part
belongs_to :sub_job
after_save :update_inventory, if: ready_for_invoice
after_save :update_total_qty
def update_inventory
# creating one more part2
part2 = Part.create(ready_for_invoice: false)
end
def update_total_qty
# updating total qty on sub job
end
end
当我创建p1 = Part.create
时,它也会创建part2
个对象。但它为part2
子作业更新了两次数量。我检查了part2
对象的历史跟踪器。它显示了两个历史记录跟踪器,但在db上只显示了一个part2
对象。任何帮助都会很棒。
答案 0 :(得分:0)
首先,我对你的错误/问题不百分之百,但我希望通过代码中的内容来帮助你:
我假设ready_for_invoice默认为true。
因此你编码的是:
创建一个新部件,将ready_for_invoice设置为true
p1 = Part.create
保存后,如果ready_for_invoice = true(它确实如此)
# run update_inventory first
创建一个新部件,将ready_for_invoice设置为false
p2 = Part.create(ready_for_invoice: false)
保存p2后
# run update_total_qty (doing whatever that does)
保存p1后
# run update_total_qty (doing whatever that does)