link_to显示带有erb模板的数据集

时间:2015-12-03 04:11:29

标签: ruby-on-rails

我们希望在视图中提供一个链接,以显示模板search_result.html.erb,并在@data中存储数据集(@data在search_result.html.erb中使用)新窗户。我们正在考虑这样的事情:

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

这件事有效吗?

2 个答案:

答案 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]