0

通过文件上传从 CSV 导入数据。 csv.each_with_index在我的本地开发环境和 Heroku(雪松)上以不同的方式解析相同的文件:

# Sample CSV row:
# Steel Can,100,2.6,31,Steelco

csv = CSV.parse(infile, {:headers => true})
csv.each_with_index do |row, i|
  row = ???
end

在本地,该行被读取为包含单个长字符串的数组:

row = ["Steel Can,100,2.6,31,Steelco"]
parse via: row[0].split(",")
# Seems weird CSV parser requires a split on a comma, but w/e

在 Heroku 上,该行被正确读取为包含多个字符串的数组:

row = ["Steel Can","100","2.6","31","Steelco"]
parse via: row

对于 S&G,我尝试在 CSV 中的每个字段周围添加引号,结果导致 CSV 格式错误,我放弃了它。

是什么导致同一文件在服务器上的解析方式不同?

4

1 回答 1

1

在 Ruby 1.8.x 中,CSV 是一个与 Ruby 1.9.2 完全不同的库。

在 Ruby 1.9.2 中,CSV 库是 Ruby 1.8 FasterCSV 库。

于 2013-02-15T22:06:10.997 回答