2012-02-08 2 views
5

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

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».

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

+0

Можете ли вы показать нам, какая часть CSV вызывает проблемы? –

+0

@muistooshort дайте мне знать, если вам нужен более масштабный снимок. Это файл целиком. Я урезал файл seeds.rb в сообщении, но мой фактический код анализирует все столбцы на этом листе. –

+0

Любой шанс увидеть исходный CSV? –

ответ

5

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

1

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

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

EDIT: Ссылка на ответ !!!Rails FasterCSV "unquoted fields do not allow \r or \n"

+0

Можете ли вы хотя бы связать сообщение, которое вы его нашли, чтобы люди не могли копать, хотя 5000 его ответов? – Marv

+0

@Marv Я подозреваю, что они говорят о моем «Тебе было бы лучше цитировать все значения столбцов, чтобы быть в безопасности». комментарий по этому вопросу. И я немного стесняюсь 5000 ответов :) –

+0

@muistooshort Oh. Err, это произошло при просмотре очереди проверки «Первые ответы». Я думал, что он нашел решение в одном из ваших других ответов. Виноват! – Marv

5

Использовать вместо gsub. Преобразование CRLF и CR в LF # Всегда прерывайте линии с помощью \ n

+0

Это единственный ответ, который сработал для меня. благодаря –

Смежные вопросы