关联记录的Rails依赖更新

时间:2014-01-04 09:08:42

标签: oop design-patterns ruby-on-rails-4 associations

在rails(4.0)中给出两个相关模型,

class User < ActiveRecord::Base
      has_one :subscription, dependent: :destroy
end

class Subscription < ActiveRecord::Base
      belongs_to :user
end

上面的代码将确保当User的实例被销毁时,其相关记录也将是。

到目前为止一切顺利。

我的问题是,是否可以同样轻松地调用相关更新,以便每次更新User时,Subscription也会更新?

这可能是这样的:

class User < ActiveRecord::Base
      has_one :subscription, dependent: [:update, :destroy]
end

这样,当User成功更新后,关联的Subscription将重新保存,从而调用其更新过滤器(即before_savebefore_update,{{1} },after_save)。

有优雅的方法吗?如果没有,最接近干净的方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:4)

试试这个,

      has_one :subscription, :dependent => destroy, :autosave => true

有关详细信息,请参阅文档http://api.rubyonrails.org/classes/ActiveRecord/AutosaveAssociation.html