Это приложение Rails (с использованием postgresql db) импортирует данные из CSV для создания новых записей модели "Клиент".Импорт в Models / client.rb выглядит следующим образом:
def self.import(file, industry)
CSV.foreach(file.path, headers: true, encoding:'iso-8859-1:utf-8') do |row|
industry.clients.create! row.to_hash
end
Это правильно работает при создании записей и заполнении атрибутов каждой записи в соответствии с данными CSV для всех типов записей, кроме массива.
Клиенты имеют атрибут типа массива «электронные письма» (среди других атрибутов массива).Атрибуты массива были созданы в миграции следующим образом:
add_column :clients, :emails, :text, array: true, default: []
В CSV они хранятся в таких ячейках:
["email1@domain.com","email2@domain.com", "email3@domain.com"]
После загрузки эти сообщения электронной почты будут отображаться на моем локальном сервере:
INSERT INTO "клиенты"... [" emails "," {\ "email1@domain.com", \ "email2@domain.com \"} "]
Как видите, он отрубаеттретий элемент массива "email3@domain.com", и это верно для последнего элемента всех массивов, загруженных из CSV.
Я предполагаю, что тип массива Postgresql имеет проблемы с форматом, в котором массив сохраняется в CSV (- ["element1", "element2", ...]) - Iпробовал несколько разных форматов, но пока безуспешно.Есть мысли о том, как это сделать?