【发布时间】:2013-09-09 16:44:19
【问题描述】:
-
我知道它会在
autosave: true按照https://api.rubyonrails.org/classes/ActiveRecord/AutosaveAssociation.html 保存关联 -
我知道它会保存类似构造的关联
book = Book.new(name: 'foo') book.authors.build(name: 'bar') #has_many book.save
或喜欢
book = Book.new(name: 'foo')
book.build_author(name: 'bar') #has_one
book.save
-
我认为关联在分配或添加时也会保存
book = Book.new(name: 'foo') book.author = Author.new(name: 'bar') book.save
或
book = Book.new(name: 'foo')
book.authors << Author.new(name: 'bar')
book.save
但是,我有一个复杂的错误,它涉及到我期望它不会自动保存的东西。所以,我想通过检查book 来进行调试,以验证我认为要保存的内容实际上会被保存。
TL;博士;
保存关联时检查什么内部状态?我假设模型有一个内部实例变量,如associations_to_save,关联在创建时被添加。然后,当模型被保存时,它会遍历这些关联并保存它们。
【问题讨论】:
-
您运行的是哪个版本的 ActiveRecord/Rails?早期版本中存在一个错误,导致它无法完全正常工作。
-
@PinnyM - 我使用的是最新的
3.2.13。您能否更具体地说明早期版本中哪些问题无法正常工作? -
我指的是早期 2.3 版本中的错误 - 现在应该不会影响您。
-
ActiveRecord 自动保存关联文档的链接已损坏 - 此处为最新:api.rubyonrails.org/classes/ActiveRecord/…
标签: ruby-on-rails activerecord associations has-many