我们希望在视图中提供一个链接,以显示模板search_result.html.erb
,并在@data
中存储数据集(@data
在search_result.html.erb中使用)新窗户。我们正在考虑这样的事情:
<%= link_to 'Search Result', @data, :target => '_blank' do %>
<%=render 'search_result' %>
<% end %>
这件事有效吗?
答案 0 :(得分: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' %>
答案 1 :(得分:1)
您还需要在routes.rb中定义指向控制器中的操作的路由,如:
get 'search_result' => 'YourController#YourAction'
在您看来,添加如下链接:
<%= link_to 'Search Result', search_result_path(:data => @data), :target => '_blank' %>
在您的操作中,您可以通过以下方式获取@data
:
@data = params[:data]