Je trouve (noodling autour dans le script/console) que si j'ajoute un nouvel élément à la collection associée, je n'ai pas appeler foo.reload pour voir le changement qui en résulte:Devrait-il être nécessaire d'appeler ActiveRecord :: Base.reload après la mise à jour d'une collection d'attributs imbriqués?
foo.bars
=> []
foo.bars_attributes = [{ :person_id => '288', :task_id => '1237' }]
=> [{ :person_id=>"288", :task_id=>"1237" }]
foo.save
=> true
foo.bars
=> [#<Bar id: 6, person_id: 288, task_id => 1237>]
Terrific. Mais quand je supprimer un élément de la collection, je dois appeler foo.reload avant le changement (visible dans DB après un appel à sauvegarder) se reflète dans ma collection:
foo.bars_attributes = [{ :id => '6', :_delete => '1' }]
= [{ :_delete=>"1", :id=>"6" }]
foo.save
=> true
foo.bars
=> [#<Bar id: 6, person_id: 288, task_id => 1237>]
foo.reload
foo.bars
=> []
Est-ce normal, ou suis-je faire quelque chose de mal dans la mise à jour de l'association?