我有模型,我想設置一個布爾值爲false,只要它被更改。以後我可以重新處理它,以確保相關記錄是最新的。我嘗試了一些東西,但不斷讓自己陷入循環。更新記錄時Rails模型集布爾值
/app/model/contest.rb
class Contest < ActiveRecord::Base
has_many :results, dependent: :destroy
after_update :set_contest_not_updated
def set_contest_not_updated
self.contest_updated=false
self.save
end
def set_contest_updated
self.update_column(:contest_updated_at, Time.now)
self.update_column(:contesy_updated, true)
end
預期的行動:
contest.update_atrributes(flag_that_effects_scoring: true)
我希望這是上面運行時,contest.contest_updated布爾將被設置爲false,並且只有在contest.set_contest_updated()方法i跑步。