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

时间:2011-10-21 19:53:07

标签: ruby-on-rails observer-pattern

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

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

我读到here你可以在保存时绕过回调,但这些方法似乎是hackish并且在rails 2和3之间不一致(我们将在几个月内转向rails 3)。

有更好的选择吗?

2 个答案:

答案 0 :(得分:0)

您可以创建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

类似的东西

答案 1 :(得分:0)

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