hrd*_*rbl 36 activerecord ruby-on-rails associations has-many
1)我知道autosave: true
根据http://railsapi.com/doc/rails-v2.3.8/classes/ActiveRecord/AutosaveAssociation.html保存关联
2)我知道它将保存像这样构造的关联
book = Book.new(name: 'foo')
book.authors.build(name: 'bar') #has_many
book.save
Run Code Online (Sandbox Code Playgroud)
或者喜欢
book = Book.new(name: 'foo')
book.build_author(name: 'bar') #has_one
book.save
Run Code Online (Sandbox Code Playgroud)
3)我认为在分配或添加关联时也会保存关联
book = Book.new(name: 'foo')
book.author = Author.new(name: 'bar')
book.save
Run Code Online (Sandbox Code Playgroud)
要么
book = Book.new(name: 'foo')
book.authors << Author.new(name: 'bar')
book.save
Run Code Online (Sandbox Code Playgroud)
但是,我有一个复杂的错误,涉及的东西不能自动保存,当我期望它.因此,我希望通过检查进行调试,book
以验证我认为将要保存的内容实际上将被保存.
TL; DR; 保存关联时检查什么内部状态?我假设一个模型有一个内部实例变量,就像associations_to_save
在创建它们时添加了关联.然后,当保存模型时,它会遍历这些关联并保存它们.
Bro*_*tse 27
不幸的是没有像association_to_save这样的东西.然而,有一些规则说明什么时候被保存.你可以在这里找到:http://guides.rubyonrails.org/association_basics.html.要点:4.1.5(belongs_to),4.2.5(has_one),4.3.4(has_many)和4.4.4(habtm).
更新:
在has_many关联的情况下,如果child.new_record,子节点在保存父节点时保存?返回true(子节点尚未保存到db),或者需要更新foreign_key列.这就是为什么:
归档时间: |
|
查看次数: |
29085 次 |
最近记录: |