Ruby on rails “铁路快速列车”;不带引号的字段不允许\r或\n;
我对FasterCSV和我的rake db有一个问题:种子迁移。我得到一个错误: “rake中止!不带引号的字段不允许\r或\n(第2行)” 在以下seeds.rb数据上:Ruby on rails “铁路快速列车”;不带引号的字段不允许\r或\n;,ruby-on-rails,ruby,migration,fastercsv,Ruby On Rails,Ruby,Migration,Fastercsv,我对FasterCSV和我的rake db有一个问题:种子迁移。我得到一个错误: “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 Pl
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文件中没有错误或笨拙的数据。它是简单的单字字符串、文本和整数。请帮忙 这就像清除csv中的所有格式一样简单。Excel似乎有一个习惯,在保存到csv文件后保留很多格式,这是导致失败的原因。在我将所有数据复制并粘贴到一个新的csv文件中之后,一切都很好。我没有足够的声誉发表评论,但我想说的是,我已经日夜在网络上查找这个错误很长时间了,终于在评论中找到了解决方案,时间是2004年 当我在我所有的价值观周围加上引号时,我终于让它起作用了 编辑:链接到答案 使用
String.encode(universal\u newline:true)
代替gsub。
它将CRLF和CR转换为LF#总是用\n断线。您能告诉我们CSV的哪个部分造成了问题吗?@muistooshort如果您需要更大的放大镜头,请告诉我。这是整个文件。我在帖子中截断了seeds.rb文件,但我的实际代码解析了这张表中的所有列。有没有可能看到原始的CSV?我现在在文本文件中看到,我的一些列已经引用了引号。这就是问题吗?听起来可能就是问题所在。为了安全起见,你最好引用所有列值。你能至少链接一下你在其中找到的帖子,这样人们就不必去翻他的5000个答案吗?@Marv我怀疑他们在谈论我的“为了安全起见,你最好引用所有列值。”对这个问题发表评论。我有点害怕5000个答案:)@muistooshort-Oh。呃,这是在处理第一个答案审阅队列时发生的。我以为他在你的另一个答案中找到了答案。我的错!有没有可能有人会发布一个代码示例,说明在值周围加引号是什么样子?是不是
:工厂类型=>第[“3”行,
?(假设不是)