2015-09-15 297 views
0

在Rails 3應用程序中,我有一個包含搜索邏輯的視圖。當查看頁面時,@events包含要顯示的記錄。Rails將視圖傳遞給控制器​​

查看代碼:

<% @events.each do |event| %> 
... 

我有一個按鈕,在頁面的底部創建使用axlsx Excel電子表格。我試圖將@events傳遞迴控制器。

這就是我想要的按鈕:

<%= link_to "Excel", event_path("supportlog.xlsx", :events => @events), :class => 'btn btn-warning' %> 

然後,在活動控制器:

def supportlog 
    @events = params[:events] 
    @events = Event.find(@events) 

    respond_to do |format| 
     format.xlsx 
    end 
    end 

之前,我已經使用PARAMS通過一個ID - 這是我第一次嘗試通過一個列表。

感謝您的幫助!

更新1

我改變了控制器這樣的:

def index8 
    @search = Event.search(params[:q]) 
    @events = @search.result 
    respond_to do |format| 
     format.html # index.html.erb 
     format.xlsx 
    end 
    end 

而且index8視圖按鈕,這樣的:

<%= link_to "Excel", event_path("index8.xlsx"), :class => 'btn btn-warning' %> 

但是,我需要得到搜索PARAM回控制器。

更新2

這工作:

<%= link_to "Excel", event_path("index8.xlsx", :q => params[:q]), :class => 'btn btn-warning' %> 

回答

0

你可以通過搜索參數回控制器。或者甚至更好,使搜索/索引的輸出部分(用作不同的格式)。

# search is part of the index action 
def index 
    search_params = params[:search] || {} 
    @events = Event.search(search_params) 
    respond_to do |format| 
    format.html {} 
    format.json {} 
    format.xlsx {} 
    end 
end 

然後你就可以使用搜索/索引網址,同時指定格式: = link_to 'Export', events_url(search: params[:search], format: :xlsx)

HTTP僅傳遞意見/表單和服務器之間的參數。 Rails解析HTTP參數並構造params散列,但不創建AR對象。

+0

使用不同格式的相同搜索很棒!謝謝! – Reddirt

+0

我認爲它的工作。但是,它實際上是將所有事件放入XLSX中。我會發布我的問題。 – Reddirt

+0

如何通過按鈕將搜索參數返回給控制器? – Reddirt

相關問題