【发布时间】:2012-03-01 07:01:40
【问题描述】:
我遇到了 FasterCSV 和我的 rake db:seeds 迁移问题。我得到错误: “rake 中止!未加引号的字段不允许 \r 或 \n(第 2 行)” 在以下seeds.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 文件中没有不良或尴尬的数据。它是简单的单字字符串、文本和整数。请帮忙!
【问题讨论】:
-
您能告诉我们 CSV 的哪一部分造成了问题吗?
-
@muistooshort 如果您需要更放大的照片,请告诉我。这是整个文件。我在帖子中截断了我的种子.rb 文件,但我的实际代码解析了这张表中的所有列。
-
有机会看到原始 CSV 吗?
-
我现在在文本文件中看到我的一些专栏引用了引号。是这个问题吗?
-
这听起来可能是问题所在。为了安全起见,最好引用所有列值。
标签: ruby-on-rails ruby migration fastercsv