bas*_*asq 4 ruby ruby-on-rails axlsx
我有一个Rails应用程序(ruby 2.0.0,Rails 4.2.1).我想用excel将数据导出到excel acts_as_xlsx gem.
这是我的控制器:
class VulnerabilitiesController < ApplicationController
before_action :set_vulnerability, only: [:show, :edit, :update, :destroy]
# GET /vulnerabilities
# GET /vulnerabilities.json
def index
@vulnerabilities = Vulnerability.all
respond_to do | format |
format.html # index.html.erb
format.json { render :json => @vulnerabilities }
format.xlsx {
send_data @vulnerabilities.to_xlsx.to_stream.read, :filename => 'costings.xlsx', :type => "application/vnd.openxmlformates-officedocument.spreadsheetml.sheet"
}
end
(…)
Run Code Online (Sandbox Code Playgroud)
这是我的模型:
class Vulnerability < ActiveRecord::Base
acts_as_xlsx
end
Run Code Online (Sandbox Code Playgroud)
但是当我点击我的按钮时:
<%= link_to 'Download', url_for(:format=>"xlsx") %>
Run Code Online (Sandbox Code Playgroud)
我有一个错误:
Couldn't find all Vulnerabilities with 'id': (all, {}) (found 0 results, but was looking for 2)
Run Code Online (Sandbox Code Playgroud)
截图:

有人可以帮忙吗?
好的,在查看问题之后,似乎默认的acts_as_xlsx gem被rails 4.1+打破了.我找到了一个存储库,它有一个应用于原始acts_as_xlsx gem的补丁来解决问题,可以在这里找到:
https://github.com/straydogstudio/acts_as_xlsx
我更新了我的gem,以便它指向新的存储库
gem 'acts_as_xlsx',
:git => "git://github.com/straydogstudio/acts_as_xlsx.git"
Run Code Online (Sandbox Code Playgroud)
或者,您可以下载zip并将文件夹解压缩到供应商目录(将其从acts_as_xlsx-master重命名为acts_as_xlsx).这是我在修补的存储库消失时所做的.
gem 'acts_as_xlsx',
:path => "vendor/acts_as_xlsx"
Run Code Online (Sandbox Code Playgroud)
感谢straydogstudio的补丁.
| 归档时间: |
|
| 查看次数: |
468 次 |
| 最近记录: |