如果某个属性更新为true,则运行更新另一个属性的方法

时间:2014-09-20 21:36:29

标签: ruby-on-rails ruby-on-rails-4 callback

claass用户具有activated: booleanactivated_at: date_time属性。

当属性activated设置为值true时,我想自动运行一个运行几个条件的方法,然后将属性activated_at设置为当前日期和时间

如果after_update :set_activated_at, if: :activated_changed?等于activated_at,我尝试设置更新activated的{​​{1}}回调,但这当然会创建一个永恒循环。

如果另一个属性等于某个值,运行方法更新属性的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

你很亲密,真的!

after_update :set_activated_at

def set_activated_at
  if activated_changed? && activated == true
  update_column(:activated_at, Time.now)
end