Если у меня есть
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
и я хочу повторно связать ребенка с другим родителем, каков самый чистый способ сделать это, при этом гарантируя, что все обратные вызовы вызываются как на родительской, так и на дочерней стороне?
т.е. я хочу достичь чего-то подобного
@child = @curr_parent.children.first
@child.update_attributes(:parent_id, @new_parent)
я просто делаю что-то вроде
@child = @curr_parent.children.first
@curr_parent.children.delete(@child)
@new_parent.children.create(@child)
@child.update_attributes(:parent_id, @new_parent)