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ż.

questionAnswers(2)

yourAnswerToTheQuestion