2015-06-20 24 views
4

我有一個Rails應用程序(ruby 2.0.0,Rails 4.2.1)。我想用acts_as_xlsx gem將數據導出爲ex​​cel。rails to_xlsx無法找到所有具有'id'的漏洞:(全部,{})(找到0個結果,但正在尋找2)

這裏是我的控制器:

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 
(…) 

這裏是我的模型:

class Vulnerability < ActiveRecord::Base 
    acts_as_xlsx 
end 

但是,當我點擊我的按鈕:

<%= link_to 'Download', url_for(:format=>"xlsx") %> 

我有一個錯誤:

Couldn't find all Vulnerabilities with 'id': (all, {}) (found 0 results, but was looking for 2) 

截圖:

ActiveRecord RecordNotFound

誰能幫助?

+0

您是否曾經找到過解決方案?升級到Rails 4後,我遇到同樣的問題。 – hermiti

回答

4

好的,在調查問題後,似乎默認的acts_as_xlsx gem與rails 4.1+中斷了。我發現,已應用於原始acts_as_xlsx寶石補丁存儲庫來解決問題,它可以在這裏找到:

https://github.com/straydogstudio/acts_as_xlsx

我更新了我的寶石,使其指向新的存儲庫

gem 'acts_as_xlsx', 
    :git => "git://github.com/straydogstudio/acts_as_xlsx.git" 

或者,您可以下載zip並將文件夾解壓到供應商目錄(將其從acts_as_xlsx-master重命名爲acts_as_xlsx)。這是我爲了防止補丁庫消失而做的。

gem 'acts_as_xlsx', 
    :path => "vendor/acts_as_xlsx" 

對於修補程序straydogstudio的榮譽。

+0

感謝您分享解決方案。它爲我工作。 – krinker

相關問題