2013-02-15 40 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庫。