0

我想为我的 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 真的很陌生,所以我什至不确定映射代码应该是这样的。

4

1 回答 1

1

看来您需要先将上传文件的内容读入 String 对象:

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

您可以参考相关的 Rails 指南以了解其工作原理的详细信息。

于 2015-05-20T15:32:13.927 回答