Kiedy ActiveRecord zapisze skojarzenia?
1) Wiem, że zapisze skojarzenia, gdyautosave: true
jak zahttp://railsapi.com/doc/rails-v2.3.8/classes/ActiveRecord/AutosaveAssociation.html
2) Wiem, że to uratuje skojarzenia, które są skonstruowane jak
book = Book.new(name: 'foo')
book.authors.build(name: 'bar') #has_many
book.save
lub jak
book = Book.new(name: 'foo')
book.build_author(name: 'bar') #has_one
book.save
3) Myślę, że skojarzenia są również zapisywane, gdy są przypisane lub dodane
book = Book.new(name: 'foo')
book.author = Author.new(name: 'bar')
book.save
lub
book = Book.new(name: 'foo')
book.authors << Author.new(name: 'bar')
book.save
Ale mam skomplikowany błąd, który wiąże się z czymś, co nie wymaga automatycznego oszczędzania, gdybym tego oczekiwał. Chcę więc debugować, sprawdzającbook
weryfikacja tego, co myślę, że zostanie zapisane, zostanie faktycznie zapisana.
TL; DR; Jaki stan wewnętrzny jest sprawdzany podczas zapisywania skojarzeń? Zakładam, że model ma wewnętrzną zmienną instancji, taką jakassociations_to_save
że skojarzenia są dodawane, gdy są tworzone. Następnie, gdy model zostanie zapisany, zapętli się przez te skojarzenia i zapisze je również.