То, что вы описываете, работает для меня с Rails 2.3.2. Я думаю, что вы, возможно, не назначаете детей родителям должным образом. Обновляются ли дети после обновления?
acceptpts_nested_attributes_for, как используется в вашем вопросе, создает писателя child_attributes на родительском элементе. У меня такое чувство, что вы пытаетесь обновить: children, а не: children_attributes.
Это работает с вашими моделями, как описано, и следующим коллбэком before_update:
before_update :list_childrens_names
def list_childrens_names
children.each{|child| puts child.name}
end
эти команды в консоли:
Parent.create # => Parent(id => 1)
Parent.update(1, :childrens_attributes =>
[{:name => "Jimmy"}, {:name => "Julie"}])
выдаст этот вывод:
Jimmy
Julie