保持2个模型记录同步-回调无限循环



我有2条相同型号的记录,我想保持这些记录上的一些数据同步。

我打算做一个after_save回调(或者可能是observer)来触发更新其他记录,但我担心这会导致保存的无限循环,因为其他记录将导致回调。

我在这里读到你可以在保存时绕过回调,但是这些方法在rails 2和3之间看起来很不hack,而且不一致(我们将在几个月后迁移到rails 3)。

有更好的选择吗?

可以创建attr_accessor:

attr_accessor :dont_run_callback
after_save :my_callback
def my_callback
  MyModel.find(1).update_attributes(..., :dont_run_callback => true)  unless dont_run_callback
end

之类的

您可以在基于第一个记录的更新更新第二个记录时使用update_columns方法,反之亦然。

最新更新