环境相关的CSV解析问题 - Rails MacOSX vs Heroku?

时间:2013-02-15 19:15:06

标签: ruby-on-rails parsing csv heroku

通过文件上传从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& Gs,我尝试在CSV中的每个字段周围添加引号,导致格式化格式不正确的CSV错误,我放弃了它。

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

1 个答案:

答案 0 :(得分:1)

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

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