在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_save
,before_update
,{{1} },after_save
)。
有优雅的方法吗?如果没有,最接近干净的方法是什么?
谢谢!
答案 0 :(得分:4)
试试这个,
has_one :subscription, :dependent => destroy, :autosave => true
有关详细信息,请参阅文档http://api.rubyonrails.org/classes/ActiveRecord/AutosaveAssociation.html