oop - Rails 相关记录的相关更新

标签 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 的实例被销毁时,其关联的记录也会被销毁。

到目前为止一切顺利。

我的问题是,是否也可以同样轻松地调用依赖更新,以便每次更新用户时,订阅也会更新?

这可能看起来像这样:

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

这样,当User成功更新时,关联的Subscription将重新保存,从而调用其更新过滤器(即before_savebefore_updateafter_saveafter_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/

相关文章:

java - 在运行时使用附加信息增强 Java 中现有数据结构的设计模式

java - 集成模式 : how to sync processing message received from multiple systems

JavaScript 模块模式 : which notation is preferred?

javascript - 将 locale 参数附加到 rails 中 js-routes gem 生成的所有路径

python - 如何与另一个脚本共享 python 脚本的导入?

c# - .NET 类的属性数量有限制吗?

ruby-on-rails-4 - 使用 hstore 并为用户保存新值

ruby-on-rails - Rails redirect_to Ruby 2.2/Rails 4.2 的新行为?

c# - 您将验证逻辑放在哪里?

oop - scala 有功能对象的快捷方式吗?