Supposons que j'ai deux modèles A et Bcréer sans utiliser une forme dans des rails
Maintenant, je veux copier des informations d'une instance de A à une instance de B en cliquant sur un bouton
est-il un façon de le faire?
Supposons que j'ai deux modèles A et Bcréer sans utiliser une forme dans des rails
Maintenant, je veux copier des informations d'une instance de A à une instance de B en cliquant sur un bouton
est-il un façon de le faire?
Ce processus est appelé en clonant un objet et sa complexité dépend du type d'information que vous souhaitez cloner.
Si vous voulez simplement cloner un champs d'un objet, vous feriez quelque chose comme ceci:
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!
Cependant, si vous voulez cloner aussi de l'ancien objet des associations, vous aurez besoin de le faire par la main.
Say à cause de l'argument que A
avait une association has_many
de B
objets appelés bees
et B
has_many
C
objets appelés sees
, cela pourrait être un peu complexe:
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!