Si jeRails - Changer le parent d'un enfant et d'assurer callbacks sont exécutés
class Parent < ...
has_many :children,
:before_add => :prepare_baby_room
:after_remove => :plan_holiday
end
class Child < ...
belongs_to :parent
:after_create => :gurgle_a_lot
:after_remove => :cry
end
et je veux réassocier un enfant avec un autre parent, ce qui est la plus propre façon de le faire, tout en veillant à ce que tous les rappels sont appelés à la fois du côté parent et du côté enfant?
-à-dire que je veux t réaliser quelque chose comme ça
@child = @curr_parent.children.first
@child.update_attributes(:parent_id, @new_parent)
dois-je faire quelque chose comme
@child = @curr_parent.children.first
@curr_parent.children.delete(@child)
@new_parent.children.create(@child)
@child.update_attributes(:parent_id, @new_parent)
Vous pouvez essayer ceci: enfant = oldParent.children.first newParent.children << enfant –
Je pense que cela souffre des mêmes probems que ive a répondu à KandadaBoggus réponds – robodisco