相关疑难解决方法(0)

Rails FasterCSV"未加引号的字段不允许\ r或\n"

我遇到了FasterCSV和我的rake db:种子迁移的问题.我得到错误:"rake aborted!unquoted字段不允许\ 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                 
Run Code Online (Sandbox Code Playgroud)

我已经搜索了这个问题的解决方案,并发现对于很多人来说这是一个UTF-8编码问题.我已经尝试过要求iconv和:encoding =>'u',但这会给我错误"UTF-8中的无效字节序列".

我是新手,我无法弄清楚它是否真的是一个我需要破解的编码问题(我一直试图做不成功,如果是这样,我真的可以使用一些指导)或者更可能是我感觉,我已经做了一个简单的失误,并且做了一些错误的方式我设置了seeds.rb,可能还有我的excel - > csv文件.csv文件中没有错误或笨拙的数据.它是简单的单字符串,文本和整数.请帮忙!

ruby migration ruby-on-rails fastercsv

5
推荐指数
2
解决办法
7907
查看次数

CSV解析返回“未加引号的字段不允许\ r或\ n”,但是在源文件中找不到错误?

我为我的Rails应用程序使用了Ruby中的内置CSV函数。我正在调用URL(通过HTTParty)解析它,然后尝试将结果保存到我的数据库中。

问题是,我得到的错误Unquoted fields do not allow \r or \n通常指示输入数据有问题,但是在检查数据时,我找不到任何问题。

这是我检索数据的方式:

response = HTTParty.get("http://" + "weather.com/ads.txt", limit: 100, follow_redirects: true, timeout: 10)

(该数据可从以下网址公开获得:weather.com/ads.txt)

然后,我尝试解析数据,并使用一些正则表达式忽略a之后的所有内容#,忽略空行等。

if response.code == 200 && !response.body.match(/<.*html>/) active_policies = []

CSV.parse(response.body, skip_blanks: true, skip_lines: /(^\s*#|^\s*$|^contact=|^CONTACT=|^subdomain=)/) do |row|
    begin
     #print out the individual ads.txt records 
     puts ""
     print row[0].downcase.strip + " " + row[1].strip + " " + 
     row[2].split("#").first.strip
            active_policies.push(
                publisher.policies.find_or_create_by(ad_partner: row[0].downcase.strip, external_seller_id: row[1].strip, seller_relationship: row[2].split("#").first.strip) do |policy|
                    policy.deactivated_at = nil
                end 
                )

                rescue => …
Run Code Online (Sandbox Code Playgroud)

ruby csv error-handling parsing ruby-on-rails

1
推荐指数
1
解决办法
977
查看次数