加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails:如何仅为一个已更改的属性运行before_u

发布时间:2020-12-16 19:53:34 所属栏目:百科 来源:网络整理
导读:在我的模型中,我正在将图像url保存在logo_ori中,并使用它来使用before_update缩略图. # shop.rbbefore_update :run_blitline_jobprivatedef run_blitline_job # uses logo_ori to make thumbnailsend 然而,我发现当我保存其他属性(例如:以表格编辑商店的配
在我的模型中,我正在将图像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?

但如果我之前已经保存了logo_ori,它仍然运行before_update.

解决方法

before_update :run_blitline_job,:if => :logo_ori_changed?

这将在每次logo_ori属性更改时运行回调.您还可以使用字符串来实现多个条件:

before_update :run_blitline_job,:if => "!logo_ori_was && logo_ori_changed?"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读