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

Ruby on rails 保持2个模型记录同步-回调无限循环,ruby-on-rails,observer-pattern,Ruby On Rails,Observer Pattern,我有两条相同型号的记录,我想保持这些记录上的一些数据同步 我本来打算在保存后进行回调,或者使用observer来触发更新另一条记录,但我担心这会导致无限次的保存循环,因为另一条记录会导致回调 我读到你可以绕过save上的回调,但是这些方法看起来很粗糙,Rails2和Rails3之间不一致。我们将在几个月后迁移到Rails3 有更好的选择吗 您可以创建属性访问器: attr_accessor :dont_run_callback after_save :my_callback def my_c

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

我本来打算在保存后进行回调,或者使用observer来触发更新另一条记录,但我担心这会导致无限次的保存循环,因为另一条记录会导致回调

我读到你可以绕过save上的回调,但是这些方法看起来很粗糙,Rails2和Rails3之间不一致。我们将在几个月后迁移到Rails3


有更好的选择吗

您可以创建属性访问器:

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

类似这样的内容

您可以创建属性访问器:

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\u columns方法根据第一条记录的更新更新第二条记录,反之亦然。

您可以使用update\u columns方法根据第一条记录的更新更新第二条记录,反之亦然