Как отобразить данные, импортированные через 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 для получения подробной информации о том, как это работает.