gpt4 book ai didi

ruby-on-rails - Rails after_save 无限循环

转载 作者:行者123 更新时间:2023-12-03 00:48:05 25 4
gpt4 key购买 nike

我有一个模型,用于存储零售店的详细信息。

在 Outlet 模型中,我有一个前置过滤器

after_save :is_outlet_verified

def is_outlet_verified
if self.latitude.present? && self.longitude.present?
self.update_attributes(:is_verified => true)
else
self.update_attributes(:is_verified => false)
end
end

如果导出经过地理编码,我想将 is_verified 字段设置为 true。但是当is_outlet_verified执行成功后,会触发after_save回调,再次触发is_outlet_verified。

最佳答案

理想情况下,您应该在 before_save 回调中执行类似的操作,而不是 after_save - 只需设置 is_verified 属性,然后让保存正常进行。

如果您确实需要这样做,可以使用 update_column 而不是 update_attribute,这将跳过所有回调。

需要注意的一个警告 - 如果 before_save 回调返回 false,则保存将不会继续。

关于ruby-on-rails - Rails after_save 无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22196318/

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