2011-02-11 10 views
1

データベースレコードをエクスポート可能なドキュメントに変換しようとしています。再インポートしてデータベースを更新することができます。私はちょうどCSVを使用していますが、それもネストされています。国has_manyhas_many都市です。入れ子になったActiveRecordレコードを再読み込みして更新できる文書にエクスポートする方法はありますか?

私はthis earlier questionあたりのYAMLダンプしようとしました:

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

をしかし、私はロードすると、そうでない:

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

私もthis articleごとnew_recordフラグをハッキングしようとしたが、それはdoesnの何かを変える。私はRails 3.xを使用しています。

これは他の人が以前に行ったことがあります。どうやって?あるいは、私は問題に異なってアプローチする必要がありますか?

答えて

0

country.saveはデータベースに新しいレコードを生成しないという問題があると思いますか? Country.create!(country.serializable_hash)を試すことができます。それは少なくともcountryの属性に基づいて新しいレコードを作成します。国IDは変更され、ネストされたオブジェクト(Province、City)は適切に処理されません。

+0

問題のポイントは、ネストされたオブジェクトを持つオブジェクトに対してこれを行うことです。私はこの解決策が当てはまるとは思わない。 – JellicleCat