gpt4 book ai didi

ruby-on-rails - Rails:如何仅对一个已更改的属性运行before_update?

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

在我的模型Shop中,我将图像URL保存在logo_ori中,并使用它来使用before_update制作缩略图。

# shop.rb
before_update :run_blitline_job

private

def run_blitline_job
# uses logo_ori to make thumbnails
end


但是我发现,当我保存其他属性(例如:以表格形式编辑商店的资料)时,它也会运行 before_update。仅保存 logo_ori时如何限制其执行?

我已经试过了:

before_update :run_blitline_job, :if => :logo_ori?


但是如果我早些时候已经保存了 before_update,它仍然会运行 logo_ori

最佳答案

before_update :run_blitline_job, :if => :logo_ori_changed?


每当 logo_ori属性更改时,它将运行回调。您还可以使用字符串来实现多个条件:

before_update :run_blitline_job, :if => proc { !logo_ori_was && logo_ori_changed? }

关于ruby-on-rails - Rails:如何仅对一个已更改的属性运行before_update?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14079013/

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