Ruby on rails 3 如何使用关联ID,如脏属性?

Ruby on rails 3 如何使用关联ID,如脏属性?,ruby-on-rails-3,activerecord,activemodel,Ruby On Rails 3,Activerecord,Activemodel,我有一个模型,它有许多其他的模型。若相关模型的结构发生变化,我想在保存之前做些什么。大概是这样的: class Foo < AR:Base has_many :bars before_save :do_smth, :if => bar_ids_changed? # like ActiveModel:Dirty def do_smth ... end end class Foobar\u id\u已更改像ActiveModel:脏的 def dosmth

我有一个模型,它有许多其他的模型。若相关模型的结构发生变化,我想在保存之前做些什么。大概是这样的:

class Foo < AR:Base
  has_many :bars

  before_save :do_smth, :if => bar_ids_changed? # like ActiveModel:Dirty

  def do_smth
    ...
  end
end
class Foobar\u id\u已更改像ActiveModel:脏的
def dosmth
...
终止
终止
实现这一点的更好方法是什么?

下面是一个有趣的相关主题。目标有点不同,但取决于您要做什么以及在
do\u smth
方法中需要什么信息,我认为您也可以利用
:after\u add
:after\u remove
回调。