gpt4 book ai didi

ruby-on-rails - 在 before_update 中更新模型

转载 作者:太空宇宙 更新时间:2023-11-03 16:07:43 24 4
gpt4 key购买 nike

我一直在想,假设我有一个模型,其属性在每个实例中都依赖于其他实例中的相同属性。最好的例子是列表中项目的顺序属性。

更新其余商品订单属性的最佳位置是在 before_update 回调方法中,前提是您同时拥有商品的旧值和新值。

但是现在每当你更新列表中的其他项目时,回调将被一次又一次地调用......

我正在寻找一种优雅的方法来解决这个问题。

我听说过 :update_without_callbacks 方法,但我不想使用私有(private)方法,而且我觉得添加额外的属性是不必要的。

有什么好主意吗?提前致谢!

最佳答案

一种方法是使用 update_all 批量设置所有其他项目的顺序。

这样您就可以有效地将查询数量限制为一个,并防止触发任何回调。

https://github.com/rails/rails/blob/83e42d52e37a33682fcac856330fd5d06e5a529c/activerecord/lib/active_record/relation.rb#L274

关于ruby-on-rails - 在 before_update 中更新模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10017042/

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