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はRuby1.9.2とは完全に異なるライブラリです。

Ruby 1.9.2では、CSVライブラリはRuby1.8FasterCSVライブラリです。

于 2013-02-15T22:06:10.997 に答える