如何在没有父资源的情况下搜索所有嵌套资源?

时间:2014-11-10 02:15:28

标签: ruby-on-rails ruby search

我的应用已将列表嵌套在类别中。

当我使用此表单处于特定类别时,我可以搜索所有列表:

<%= form_tag category_listings_path(@category), method: :get do %>
  <p>
    <%= text_field_tag :search, params[:search] %>
    <%= submit_tag 'Search', name: nil %>
  </p>
<% end %>

如您所见,我必须向category_listings_path发出请求并传递当前Category

但是,当我想将搜索栏放在没有Category的页面上时,此方法会失败!

如何在不需要传递Listing的情况下搜索所有Category

1 个答案:

答案 0 :(得分:1)

根据您所写的内容,我猜测您的路线如下:

resources :categories do
  resources :listings
end

这意味着您列出的所有路线都需要类别ID。如果您想要所有商家信息的路径,无论其类别如何,请添加:

resources :listings, only: [:index]

到您的路线。然后,您可以拥有一个搜索到listings_path的表单(这是上面路由创建的路径),并且您不需要类别ID。