2013-01-02 94 views
3

我有一個ransack搜索表單,它工作的非常好,我想爲用戶添加一個導出結果集的內容到一個XLS文件。Ransack搜索結果 - to_xls?

我已經成功實現了to_xls,但是它讓我回想起我正在搜索的對象的最大可能範圍,而不是視圖中顯示的過濾結果。

def index 

    @search = Expense.search(params[:q]) 
    @expense_list = @search.result.sort_by(&:expense_date) 

    respond_to do |format| 
     format.html 
     format.xml { render :xml => @expense_list } 
     format.xls { send_data @expense_list.to_xls, :filename => '123.xls'} 
    end 

end 

是否有事可做與洗劫如何使用GET方法?任何幫助都會很棒。

謝謝!

+0

你確定要求的XLS文件,當你發送的'q'濾波器參數? –

回答

2

我知道這是一個黑客,花了很多小時沒有得到它,反正我用它。

<a href="/expenses.xls?<%= request.fullpath.split("?")[1] %>">make xls</a> 

所以基本上它需要?之後的搜索路徑,然後將其添加到您的model.xls輸出路徑然後它工作。我自己討厭它,必須有更好的方式,但最後期限。

這裏有一個很好的link

0
%= link_to "Download Excel", yours_controller_path(params.merge(format: "xls")) %> 
+0

歡迎來到Stack Overflow!雖然這段代碼可能有助於解決這個問題,但它並沒有解釋_why_和/或_how_它是如何回答這個問題的。提供這種附加背景將顯着提高其長期教育價值。請[編輯]您的答案以添加解釋,包括適用的限制和假設。 –