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?" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |