나는 이번 주 초에 this 질문을했으며 잘 작동했습니다. 방금 약간 큰 스프레드 시트로 시도했지만 어떤 이유로 작동하지 않는 것 같습니다.CSV를 레일즈 데이터베이스로 가져 오기
require 'roo'
xlsx = Roo::Spreadsheet.open(File.expand_path('../Downloads/unistats/LOCATION.csv'))
xlsx.each_row_streaming(offset: 1) do |row|
Location.find_or_create_by(ukprn: row[0].value, accomurl: row[1].value, instbeds: row[3].value, instlower: row[4].value, instupper: row[5].value, locid: row[6].value, locname: row[7].value, lat: row[9].value, long: row[10].value, locukprn: row[11].value, loccountry: row[12].value, privatelower: row[13].value, privateupper: row[14].value, suurl: row[15].value)
end
을하지만 마지막 달리이이 오류와 함께오고있다 :
NoMethodError: undefined method `each_row_streaming' for #<Roo::CSV:0xb9e0b78>
Did you mean? each_row_using_tempdir
이 파일은 .XLSX하지만 shouldn보다는 CSV는 '다음과 같이
내 코드입니다 차이를 만들어라.
내가 잘못하고있는 아이디어가 있습니까?
같은 것이 왜이 차이를해야하는 것입니다? –
Roo gem 문서는 두 파일 유형 모두에서 작동한다는 것을 설명하기 때문에. 'header = xlsx.row (1)'을 사용하면 모든 컬럼이 예상 된 위치에 있음을 알 수 있습니다. –
맞아요, 열 수는 있지만 값을 읽는 데 다른 방법을 사용해야합니다. –