Ruby on Rails - Roo gem |问题打开活动记录附件

问题描述

状态:

  • 我有一个简单的新 Ruby On Rails 应用
  • 我需要从 MS Excel 中以 .xlsx 格式导入一些数据
  • 我通过名为“excel”的属性上传到 ActiveRecord 作为附件编程
  • 我找到了一个名为 gemRoo,它应该打开附件
  • ...通过:Roo::Excelx.open() 命令
  • 后执行文件的访问部分

问题: Roo::Excel.open() 不适用于:

  1. Roo::Excel.open(excel)
  2. Roo::Excel.open(excel.attachment)

执行打开 ActiveRecord::Attachment 的正确命令是什么?

解决方法

这个怎么样?

ModelName.excel.open do |file|
 xlsx = Roo::Spreadsheet.open(file)
end
,

实际上我在 Stackoverflow 之外得到了一个答案:

Roo::Spreadsheet.open(ActiveStorage::Blob.service.path_for(excel.key),extension: 'xlsx')

我从 Excel 加载了一行,因此必须更改代码,但打开它似乎有效! :-)