渲染子视图中的搜索结果移动到子视图

时间:2015-04-25 13:58:40

标签: ruby-on-rails ruby

两种型号。类别和材料。类别has_many材料。材料belongs_to类别。 材质有部分_list.html.erb,我将其呈现为类别show.html.erb Everthing正在寻找。现在,我已将搜索添加到子视图 - show.html.erb

<p id="notice"><%= notice %></p>

<p>
  <h2><%= @category.category_name %></h2>
</p>

<%= link_to 'Edit', edit_category_path(@category) %> |
<%= link_to 'Back', categories_path %>

<p><%= search_form_for @q do |f| %>

  <%= f.label "find" %>
  <%= f.search_field :sku_or_description_cont %>
  <%= f.submit %>
<% end %>

</p>
</p>
<%= render 'materials/list' %>
<p></p>

搜索工作也很好。但是当我点击提交时,它会将我移至materials/index.html.erb。我想留在类别视图中,只显示搜索结果作为父视图。

我的categories_controler.rb show方法:

# GET /categories/1
# GET /categories/1.json
  def show
    @q= Material.where(:category_id => params[:id]).ransack(params[:q])
    @materials = @q.result(distinct: true).paginate :page => params[:page]
  end

对于serching /分页我正在使用Ransack(不知道这是否重要)。 我应该更改什么才能使其按预期工作(带有类别/显示视图的搜索结果。 谢谢。

1 个答案:

答案 0 :(得分:1)

您应该为表单设置网址,如下所示。

<p><%= search_form_for @q, url: @category do |f| %>