Я использую жемчужину Smart listing для фильтрации в реальном времени. Ниже представлена простая форма без представления и URL-адреса.Rails - передать несколько значений флажков через параметры
<%= smart_listing_controls_for(:search) do %>
<%= simple_form_for :search do |f| %>
<%= f.input :certificates, collection: Certificate.all, :as => :check_boxes, include_hidden: false, :input_html => {:multiple => true} %>
<% end>
<% end>
Приведенный выше код генерирует несколько флажков с «Идентификатор сертификата как значения». Как только один из флажков установлен, интеллектуальный список отправляет запрос контроллеру с параметрами.
Parameters: {"utf8"=>"✓", "search_smart_listing"=>{"_"=>"1", "page"=>"", "per_page"=>"10"}, "authenticity_token"=>"z25rULU5JeeWcEZdpsy0+bz7OJFDWPmXrVGnzPvdG0cjM0ufpc3ydB9+5GywDQkUmcm6RGJnF0C4Yrd0sWpJ6g==", "search"=>{ "certificates"=>["6"]}}
Проблема заключается в том, когда я выбираю несколько флажков, массив сертификатов только имеет самое последнее значение и не все выбранные значения чека-боксы.
Также, если флажок установлен и отменен, значение массива сертификатов в параметрах остается неизменным. Я хочу, чтобы значение было удалено из массива сертификатов в параметрах, если флажок снят, и только массив массивов сертификатов должен иметь только все выбранные флажки.
Ниже приведен код html, сгенерированный для одного из нескольких флажков.
<span class="checkbox">
<label for="search_certificates_5">
<input class="check_boxes required" type="checkbox" value="5" name="search[certificates][]" id="search_certificates_5">
Certificate 1
</label>
</span>
Заранее спасибо :)
Спасибо Рориго за ответ. Но это не сработало. Тот же вопрос, что и раньше. Только одно значение в массиве сертификатов. Вот парамеры после удаления простой формы: 'Параметры: {" utf8 "=>" ✓ "," search_smart_listing "=> {" _ "=>" 1 "," page "=>" "," per_page "= > "10"}, "search" => {"certificates" => ["6"]}} ' – Mahendhar
@Mahendhar Я обновил свой ответ. Вы все равно должны использовать 1 форму, но также есть проблема с текущей версией. Проверьте мой ответ. –
Большое спасибо @Rodrigo, он работает! – Mahendhar