Ruby on rails 检测现有ActiveRecord关联上的更改
我正在编写一个ActiveRecord扩展,它需要知道何时修改关联。我知道通常我可以使用:after\u add和:after\u remove回调,但是如果关联已经声明了呢?正如您所说,您可以使用after\u add和after\u remove回调。另外为关联模型设置after_提交过滤器,并将更改通知父级Ruby on rails 检测现有ActiveRecord关联上的更改,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我正在编写一个ActiveRecord扩展,它需要知道何时修改关联。我知道通常我可以使用:after\u add和:after\u remove回调,但是如果关联已经声明了呢?正如您所说,您可以使用after\u add和after\u remove回调。另外为关联模型设置after_提交过滤器,并将更改通知父级 class User < ActiveRecord::Base has_many :articles, :after_add => :read, :after_remo
class User < ActiveRecord::Base
has_many :articles, :after_add => :read, :after_remove => :read
def read(article)
# ;-)
end
end
class Article < ActiveRecord::Base
belongs_to :user
after_commit { user.read(self) }
end
您可以简单地覆盖关联的setter。这样还可以让您更自由地了解更改,例如,在更改前后使用assoc对象,例如 类用户