I have the following associations.
class Document < ActiveRecord::Base has_many :document_sections, :dependent => :destroy, :autosave => true has_many :document_items, :through => :document_sections end
class DocumentSection < ActiveRecord::Base belongs_to :document has_many :document_items, :dependent => :destroy, :autosave => true end
class DocumentItem < ActiveRecord::Base belongs_to :document_section end
When I use irb console to do
d = Document.find_by_id(100) d.title = '1-comments' s = d.document_sections.find_by_id(200) s.title = '2-comments' i = s.document_items.find_by_id(10) i.comments = '3-comments' d.save
The changes to d, s, and i get saved to the database because of the autosave option set to true in the model. However when I do the same in a controller action, only the document header comments get saved. The log only shows a sql update to the documents table but not the document_sections and document_items table. Why is this behavior different in a controller vs irb console.