Когда я импортирую CSV, как мне обрабатывать данные в строке, которая соответствует ассоциации?

Я следую заИмпорт CSV Railscast и это прямо вперед.

Проблема в том, что он имеет дело только с CSV-файлом, содержащим только информацию в 1 модели в 1 файле.

Скажем, у меня есть файл CSV, который я пытаюсь импортировать в свойListing модель. В каждой строке / списке есть столбец с именемBuilding где значение фактически является именем атрибута здания этого списка (т.е.@listing.building.name).

Как мне справиться с этими случаями при импорте?

Это шкаф, который Райан получает в этом Railscast, который находится наProduct Модель в его случае:

def self.import(file)
  CSV.foreach(file.path, headers: true) do |row|
    product = find_by_id(row["id"]) || new
    product.attributes = row.to_hash.slice(*accessible_attributes)
    product.save!
  end
end

Все, что происходит, это то, что он проверяет, существует ли продукт и обновляет ли атрибуты. Если это не так, то создайте новый.

Не совсем уверен, как обрабатывать ассоциации в этом случае ... особенно учитывая, что то, что должно произойти, это в том случае, если связанная запись не существует, ее необходимо создать во время этого процесса.

Итак, возвращаясь к моемуbuilding.name пример раньше, если нетBuilding.find_by_name(name), то он должен создать новую запись здания.

Мысли?

Ответы на вопрос(1)

Ваш ответ на вопрос