ruby-on-rails - 更新后重复的方法
问题描述
我在我的 rails 模型中使用 after_commit :my_method 来调用方法。在保存表单后运行。在我的方法中,我更新了一些额外的属性,但问题是该方法在我更新后重新运行。我相信 after_commit 导致了这个问题,有没有办法告诉它在特定更新后不要运行?
解决方案
如果您使用的是 Rails 5.1+,则只有在 Rails 中的属性发生更改时,才可以遵循 Run a callback:
class Page < ActiveRecord::Base
after_save :do_something, if: :saved_change_to_status_id?
private
def do_something
# ...
end
end
上述回调do_something
仅在 status_id 刚刚更改时才会触发。
推荐阅读
- java - Android删除sdcard中的文件
- java - 用 groovy 读取 Excel(.xlsx 或 .csv)
- smartsheet-api - 如何使用 Smartsheet API 检测“Sheet - Create”
- javascript - 如何在Angular中将变量传递给css
- angular - 通过表单数据在 s3 存储桶上上传 html2pdf 生成的 pdf 文件
- angularjs - 验证AntiForgeryToken AngularJS。X-XSRF-TOKEN 标头和 XSRF-TOKEN cookie 设置但得到 400
- php - 有没有办法在 HTML 中获取 SVG 的选定部分的值,与 PHP 一起使用
- python - 根据某些值选择表格的某些行
- javascript - Javascript:即使我使用的是 window.onload 我收到错误“var is not defined”
- perl - 从 Perl 返回一个 JSON 对象