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
или как
book = Book.new(name: 'foo')
book.build_author(name: 'bar') #has_one
book.save
3) Я думаю, что ассоциации также сохраняются, когда они назначены или добавлены
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; DR;
Какое внутреннее состояние проверяется при сохранении ассоциаций? Я предполагаю, что модель имеет внутреннюю переменную экземпляра типа associations_to_save
, с которой ассоциации добавляются, когда они создаются. Затем, когда модель сохраняется, она проходит через эти ассоциации и сохраняет их тоже.