gpt4 book ai didi

ruby-on-rails - rails : Why before_save on parent is called?

转载 作者:行者123 更新时间:2023-12-03 15:26:16 27 4
gpt4 key购买 nike

工作有很多发票:

class Job < ActiveRecord::Base
has_many :invoices, :autosave => true
before_save :set_outstanding_payments
end

class Invoice < ActiveRecord::Base
belongs_to :job
end

更新发票时 (@invoice.update(...)),调用作业的 set_outstanding_payments

为什么?

最佳答案

我对这种行为感到非常惊讶,因为正如文档所述,自动保存仅在保存父级时触发。

原因可能是因为在与 Invoice 关联的 Job 中声明 :autosave => true 会导致子更新调用父更新上的 save

当在父级上调用保存时,将调用所有保存 Hook 。即使如此,请确保您在 Invoice 模型中没有任何 beforeafter 更新 Hook ,这会与父级混淆。

有关自动保存关联功能的更多信息,请引用此链接:

http://api.rubyonrails.org/classes/ActiveRecord/AutosaveAssociation.html

希望对你有所帮助。

关于ruby-on-rails - rails : Why before_save on parent is called?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21753379/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com