首页 > 解决方案 > 更新后重复的方法

问题描述

我在我的 rails 模型中使用 after_commit :my_method 来调用方法。在保存表单后运行。在我的方法中,我更新了一些额外的属性,但问题是该方法在我更新后重新运行。我相信 after_commit 导致了这个问题,有没有办法告诉它在特定更新后不要运行?

标签: ruby-on-rails

解决方案


如果您使用的是 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 刚刚更改时才会触发。


推荐阅读