Rails metasearch search_form с флажками - PullRequest
0 голосов
/ 28 декабря 2011

Я немного растерялся.Несмотря на все вопросы по этой теме, я не могу найти правильное решение.

Я просто хочу добавить флажки в форму фильтра индекса.

Я использую Gem Metasearch и вот мой текущий код:

  <form class="filter_form">
     <%= form_for @search do |f| %>
       <%= f.collection_select :categories_id_equals, Category.all, :id, :name, :include_blank => true, :prompt => "All categories" %>
       <%= f.collection_select :location_id_equals, Location.all, :id, :name, :include_blank => true, :prompt => "All locations" %>

       <ul> 
          <b> Type </b>     
          <% Type.all.each do |type|%>
        <li>
          <%= check_box_tag :types_id_equals, type.id %>
          <%=h type.name %>
        </li>
          <% end %>
      </ul>
       <%= submit_tag "Find Now", :class => "find" %>
     <% end %>

Все отлично работает, кроме флажков.

У меня мало опыта в рельсах, поэтому я не вижу, что я делаю неправильно и что может быть наиболее удобным и простым способом.

Обновление .....................

Более подробное объяснение - у меня есть модель Trips, которая имеет отношения HABTM с двумя моделями (категориями, типами) и принадлежит местоположению.

Я хочу иметь возможность фильтровать поездки на нейиндекс по категориям (выбор f.collection), местоположение (выбор f.collection) и типы (флажки).

После проверки типов и отправки - ничего не меняется, фильтрация не производится!

Ответы [ 2 ]

0 голосов
/ 09 апреля 2014

Вот как я с этим справился.

<% @sub_categories.each do |cat| %>
   <h2><%= cat.name %> <%= check_box_tag "q[product_category_id_in][]", cat.id %></h2>
<% end %>

По сути, просто q - это то, чем является ваш параметр запроса, а затем сразу в скобках sub в вашем методе meta_search. Я использовал what_foreign_key_in, так как хочу иметь возможность добавлять более одного идентификатора в массив для поиска. Затем добавьте пустые скобки после него, чтобы рельсы правильно обрабатывали параметры сообщения.

0 голосов
/ 28 декабря 2011
<%= check_box_tag "type_ids[]", type.id %>

Сделаю это за вас.Выбранные идентификаторы будут переданы в виде строки, разделенной запятыми.Вы можете найти их в params[:type_ids], но вам придется иметь дело с ними вручную!Rails не волшебник, это фреймворк.

...