2011-02-11 7 views
1

J'essaie de transformer un enregistrement de base de données en un document exportable, de sorte que je puisse le réimporter et mettre à jour la base de données. Je venais d'utiliser CSV mais il est aussi imbriqué, disent Payshas_manyProvinceshas_manyVilles.Comment exporter un enregistrement ActiveRecord imbriqué dans un document qui peut être réimporté pour être mis à jour?

J'ai essayé de dumping YAML par this earlier question:

File.open("#{RAILS_ROOT}/lib/tasks/canada.yml", 'w') do |file| 
    country = Country.find(1) 
    country.provinces 
    country.cities 
    YAML::dump(country, file) 
end 

Mais quand je charge, il ne possède pas:

country = YAML.load_file("#{RAILS_ROOT}/lib/tasks/canada.yml") 

J'ai même essayé de piratage le drapeau new_record par this article mais il n » t changer quoi que ce soit. J'utilise Rails 3.x.

Cela doit être quelque chose que d'autres personnes ont fait auparavant. Comment? Ou dois-je aborder le problème différemment?

Répondre

0

Je suppose que le problème est que country.save ne produira pas un nouvel enregistrement dans la base de données? Vous pouvez essayer Country.create!(country.serializable_hash). Cela va au moins créer un nouvel enregistrement basé sur les attributs de country. L'identifiant du pays sera changé et je suppose que les objets imbriqués (Province, Ville) ne seront pas gérés correctement.

+0

Le point de la question est de faire cela pour un objet avec des objets imbriqués, non? Je ne crois pas que cette solution s'applique. – JellicleCat

Questions connexes