2013-02-15 1 views
0

파일 업로드를 통해 CSV에서 데이터 가져 오기. csv.each_with_index 내 로컬 개발 환경과 Heroku가 (삼나무)에서 다르게 같은 파일을 구문 분석 :환경 의존 CSV 구문 분석 문제 - 레일 MacOSX 대 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 

로컬 행이 하나의 긴 문자열이 포함 된 배열로 읽어 : 행 Heroku가에

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 

을 배열로 정확하게 판독 함유 여러 문자열 : S &도 Gs 들어

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

는 I, 그것은 입술 CSV 모든 필드 따옴표를 추가하려고 부적절한 형식의 CSV 오류가 발생하여이를 포기했습니다.

서버에서 동일한 파일이 다르게 파싱되는 원인은 무엇입니까?

+1

각 환경에 'puts RUBY_VERSION'을 실행 하시겠습니까? –

+0

아 :) 로컬은 1.8.7, 원격은 1.9.2입니다. 업데이트되어 수정되는지 확인합니다. – RSG

답변

1

Ruby 1.8.x에서 CSV는 Ruby 1.9.2와 완전히 다른 라이브러리입니다.

루비 1.9.2에서 CSV 라이브러리는 Ruby 1.8 FasterCSV 라이브러리입니다.