2013-02-15 27 views
0

通过文件上传从CSV导入数据。 csv.each_with_index不同的解析相同的文件在我的本地开发环境,并在Heroku(雪松):依赖于环境的CSV解析问题 - Rails MacOSX vs 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

你会在每个环境中运行'puts RUBY_VERSION' – 2013-02-15 19:27:03

+0

啊:)本地是1.8.7,远程是1.9.2。将更新并查看是否修复它。 – RSG 2013-02-15 19:46:35

回答

1

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

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