Как экспортировать вложенную запись ActiveRecord в документ, который можно импортировать для обновления? - PullRequest
1 голос
/ 11 февраля 2011

Я пытаюсь превратить запись базы данных в экспортируемый документ, чтобы я мог повторно импортировать ее и обновить базу данных.Я бы просто использовал CSV, но он также вложенный, скажем, Страна has_many Провинции has_many Города .

Я пробовалдамп 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")

Я даже пытался взломать флаг new_recordза эту статью но это ничего не меняет.Я использую Rails 3.x.

Это должно быть то, что другие люди делали раньше.Как?Или мне нужно по-другому подойти к проблеме?

1 Ответ

0 голосов
/ 22 сентября 2011

Полагаю, проблема в том, что country.save не создаст новую запись в базе данных? Вы можете попробовать Country.create!(country.serializable_hash). Это по крайней мере создаст новую запись, основанную на атрибутах country. Идентификатор страны будет изменен, и я думаю, что вложенные объекты (провинция, город) не будут обрабатываться должным образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...