2011-01-03 6 views
3

Comment puis-je et est-il possible que des enregistrements clone et leurs enregistrements associés?Rails Clone records

Exemple.

Catégorie
_ | Produit
_ __
| Variante de produit

Ainsi, lorsque je clique sur un bouton, la catégorie, les produits et les variantes de produits sont clonés/copiés. méthode

... Merci

Répondre

4

Vous devez remplacer #clone de sorte que toutes les associations sont également clonés, comme

class Category < ActiveRecord::Base 
    has_many :products 

    alias_method :original_clone, clone 

    def clone 
    category = self.original_clone 
    category.products = self.products.clone 
    end 
end 

... n'oubliez pas de faire la même chose sur le produit et ProductVariant.

+0

Merci beaucoup: O) – andkjaer

0

Je pense que vous devriez commencer d'utiliser "clone". Votre problème, si j'ai bien compris, c'est que vous voulez un clone récursif. Franchement, je ne sais pas s'il existe une solution générale mais je pense que vous pourriez cloner votre père/fils chaîne à la main. Ce n'est peut-être pas une solution élégante mais cela devrait fonctionner.