2015-12-03 39 views
-1

我們希望在視圖中提供一個鏈接,以便在新窗口中顯示模板search_result.html.erb和存儲在@data@data用於search_result.html.erb)中的數據集。我們正在考慮這樣的事情:link_to顯示帶有erb模板的數據集

<%= link_to 'Search Result', @data, :target => '_blank' do %> 
    <%=render 'search_result' %> 
<% end %> 

這是行得通的嗎?

回答

1

答案是否定的。你需要一個控制器來做到這一點。例如,

# data_controller.rb 
class DataController < ApplicationController 
    def search 
    # do something with @data here 
    end 
end 

還需要在routes.rb

# routes.rb 
get 'search' => 'data#search' 

確定這條路線現在可以顯示在視圖中的鏈接

<%= link_to 'Search Result', search_path, :target => '_blank' %> 
+0

既然有我們要跳過一個'@ data'控制器。可能嗎? – user938363

+0

如果要使用相同的路線渲染視圖,則可以。但是,採用不同的路線,讓控制器執行此操作。 –

1

您還需要定義路由的路由.rb指向控制器中的動作,如:

get 'search_result' => 'YourController#YourAction' 

在您看來,添加爲下面的鏈接:

<%= link_to 'Search Result', search_result_path(:data => @data), :target => '_blank' %> 

在你的行動,你可以得到你的@data有:

@data = params[:data]