Как отобразить данные, импортированные через xlsx без заголовков в rails 4

Я хочу добавить функцию импорта для пользователей моего приложения rails, однако файлы, которые они будут импортировать, не будут иметь заголовка, а интересные данные будут начинаться со строки 8. В строках мне нужны только 2 поля. Вот пример строки в файле xlsx:

751,"01/17/2015","11:17:32","60","TDFSRDSK","2","10","-1","0","3","","26","3","","","1","0"  

Мне понадобятся только дата и число в 4-м поле (60), и я добавлю их в таблицу SQL. У меня проблема с отображением и как это сделать. Я пытался сделать это, основываясь на учебнике по Railscast и Roo Doc, но мне не удалось заставить его работать.

def self.import(file)
 xlsx = Roo::Excelx.new(file)
 xlsx.each_row do |row|
  date = row[2]
  value = row[4]
  user_id = current_user.id
  product.create(:date => date, :valeur => value, :user_id => user_id)
 end
end

И ошибка, которую я получаю:

no implicit conversion of ActionDispatch::Http::UploadedFile into String

Я действительно новичок в rails / ruby, поэтому я даже не уверен, что код отображения должен быть таким.

1 ответ

Похоже, вам нужно сначала прочитать содержимое загруженного файла в объект String:

xlsx = Roo::Excelx.new(file.read)

Вы можете обратиться к соответствующему руководству по Rails для получения подробной информации о том, как это работает.

Другие вопросы по тегам