Dieser Prozess wird geklont ein Objekt und die Komplexität davon hängt davon ab, welche Art von Informationen Sie klonen möchten.
Wenn Sie einfach nur ein Objekt der Felder klonen möchten, würden Sie so etwas tun:
old_object = A.find(old_object_id)
new_object = B.new
new_object.field_one = old_object.field_one
new_object.field_two = old_object.field_two
new_object.save!
Wenn aber Sie wollen auch die alten Objekts Verbände klonen, müssen Sie das tun, von Hand.
Sprich aus Gründen der Argumentation, dass A
genannt bees
und B
has_many
C
Objekte sees
eine has_many
Vereinigung von B
Objekte hatte genannt, könnte dies ein wenig komplex:
old_object.bees.each do |bee|
new_bee = bee.clone
new_bee.sees.each do |see|
new_see = see.clone
new_see.save!
end
new_object.bees.push(new_bee)
end
new_object.save!