Ранее на этой неделе я задал этот вопрос, и он работал нормально. Я только что попробовал это с немного большей электронной таблицей, и по какой-то причине это не работает.
Мой код выглядит следующим образом:
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
Это файл CSV, а не .xlsx, но это не должно иметь значения.
Любые идеи, что я делаю неправильно?
header = xlsx.row(1)
показывает, что все столбцы находятся в ожидаемом месте. - person Dave C   schedule 25.01.2017