Does AR::Base#save update the entire object tree on update?

Wes Gamble wrote:

On update (new_record? == false), if I call save on an AR::Base descendant, is it guaranteed that the entire object graph is traversed and each of the children is saved?

What I'm seeing is give an arbitrarily complex object graph of children which belong to an object, when I save the object, the only objects which get saved automatically are the children which are specified using has_one, not any of the children specified using has_many.

New has_many children will be automatically saved (created). This will continue down the association levels as long as there's an unbroken line of un-saved children.

Existing children are not updated.