5

我遇到了 FasterCSV 和我的 rake db:seeds 迁移问题。我收到错误消息:“rake aborted!未引用的字段不允许 \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 中的无效字节序列”。

我是一个新手,我不知道这是否真的是我需要破解的编码问题(我一直试图这样做没有成功,如果是这样,我真的可以使用一些指导)或者,更有可能我感觉,我犯了一个简单的错误,并且在设置种子.rb 和可能我的 excel -> csv 文件的方式上做错了。csv 文件中没有不良或尴尬的数据。它是简单的单字字符串、文本和整数。请帮忙!

4

3 回答 3

5

就像清除 csv 中的所有格式一样简单。Excel 似乎习惯于在保存为 csv 文件后保留大量格式,这导致了失败。在我将所有没有格式的数据复制并粘贴到一个新的 csv 文件中之后,一切都很好。

于 2012-02-10T16:03:22.267 回答
5

改用String.encode(universal_newline: true)gsub。它将 CRLF 和 CR 转换为 LF # 总是用 \n 换行

于 2014-12-31T07:21:41.127 回答
1

我没有足够的声誉发表评论,但我想说我在网上日夜寻找这个错误很长时间,终于在评论中找到了解决方案,by mu is too short

当我在我的所有价值观周围加上引号时,我终于让它起作用了。

编辑:链接回答!!! Rails FasterCSV“未加引号的字段不允许 \r 或 \n”

于 2014-12-17T23:44:24.403 回答