Rails FasterCSV "поля без кавычек не разрешают \ r или \ n" - PullRequest
5 голосов
/ 08 февраля 2012

У меня проблема с FasterCSV и моей миграцией rake db: seed. Я получаю ошибку: "грабли прерваны! Поля без кавычек не позволяют \ r или \ n (строка 2)" по следующим данным seed.rb:

require 'csv' 

directory = "db/init_data/"

file_name = "gardenzing020812.csv"
path_to_file = directory + file_name
puts 'Loading Plant records'
# Pre-load all Plant records
n=0
CSV.foreach(path_to_file) do |row|
  Plant.create! :name => row[1],
  :plant_type => row[3],
  :group => row[2],
  :image_path => row[45],
  :height => row[5],
  :sow_inside_outside => row[8]
n=n+1
end                 

Я искал решение этой проблемы и обнаружил, что для многих это проблема кодирования UTF-8. Я пробовал требовать iconv и: encoding => 'u', но тогда я получаю сообщение об ошибке "Недопустимая последовательность байтов в UTF-8".

Я новичок, и я не могу понять, действительно ли это проблема с кодировкой, которую мне нужно решить (которую я пытался решить безуспешно, и если да, то я мог бы действительно использовать некоторые указания) или, Скорее всего, я чувствую, что я совершил простую ошибку и сделал что-то не так с тем, как я настроил seed.rb и, возможно, мой файл excel -> csv. В CSV-файле нет плохих или неуклюжих данных. Это простые строки из одного слова, текста и целых чисел. Пожалуйста, помогите!

Ответы [ 3 ]

5 голосов
/ 31 декабря 2014

Используйте String.encode(universal_newline: true) вместо gsub. Преобразование CRLF и CR в LF # Всегда разрывать строки с \ n

5 голосов
/ 10 февраля 2012

Это было так же просто, как очистить все форматирование в CSV. Кажется, в Excel есть привычка сохранять большую часть форматирования после сохранения в CSV-файле, что привело к сбою. После того, как я скопировал и вставил все данные без форматирования в новый CSV-файл, все было в порядке.

1 голос
/ 18 декабря 2014

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

Я наконец заставил его работать, когда поместил в кавычки все мои значения.

РЕДАКТИРОВАТЬ: Ссылка на ответ !!! Rails FasterCSV "поля без кавычек не допускают \ r или \ n"

...