Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails “铁路快速列车”;不带引号的字段不允许\r或\n;_Ruby On Rails_Ruby_Migration_Fastercsv - Fatal编程技术网

Ruby on rails “铁路快速列车”;不带引号的字段不允许\r或\n;

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

我对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 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”行,
?(假设不是)