2011-12-28 2 views
0

Я немного смущен. Несмотря на все вопросы по этой теме, я не могу найти правильное решение.Rails metasearch search_form с флажками

Что я хочу сделать, так это просто добавить флажки в мою форму фильтра фильтра.

Я использую 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 %> 

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

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

Update .....................

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

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

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

+1

В какой способ не работает? Не знаю? Вы получаете исключение? Вы можете проверить их, но только один идентификатор проверенного передается в хэш-символе 'params'? – davidb

+0

Ничего не меняется, флажки не фильтруют результаты. Но переносится только один идентификатор, после перехода от <% = check_box_tag%> к <% = f.check_box%>. – emilsw

ответ

0
<%= check_box_tag "type_ids[]", type.id %> 

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

+0

По-прежнему ничего хорошего. Но не могли бы вы объяснить, что вы имеете в виду? Как я уже сказал, я все еще новичок :) – emilsw

0

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

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

В основном только д является то, что ваши пары запроса, а затем сразу же после этого в скобках подразделов в вашем методе meta_search. Я использовал any_foreign_key_in, так как хочу иметь возможность добавлять более одного идентификатора в массив для поиска. Затем добавьте пустые скобки после этого, чтобы рельсы правильно обрабатывали параметры post.