给定 Rails (4.0) 中的两个关联模型,
class User < ActiveRecord::Base
has_one :subscription, dependent: :destroy
end
class Subscription < ActiveRecord::Base
belongs_to :user
end
上面的代码将确保当 User
的实例被销毁时,其关联的记录也会被销毁。
到目前为止一切顺利。
我的问题是,是否也可以同样轻松地调用依赖更新,以便每次更新用户
时,订阅
也会更新?
这可能看起来像这样:
class User < ActiveRecord::Base
has_one :subscription, dependent: [:update, :destroy]
end
这样,当User
成功更新时,关联的Subscription
将重新保存,从而调用其更新过滤器(即before_save
,before_update
、after_save
、after_update
)。
有没有一种优雅的方式来做到这一点?如果没有,干净地实现这一点的最接近的方法是什么?
谢谢!
最佳答案
试试这个,
has_one :subscription, :dependent => destroy, :autosave => true
有关更多详细信息,请参阅文档 http://api.rubyonrails.org/classes/ActiveRecord/AutosaveAssociation.html
关于oop - Rails 相关记录的相关更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20919044/