Rails radio_buttons выполняет множественный выбор для одного и того же атрибута, возможно ли это?

#html #ruby-on-rails #forms #search #ransack

Вопрос:

У меня есть search_form_for , и мне нужно иметь возможность выбрать несколько платежных status систем, чтобы выполнить поиск по обыску.

У нас уже есть f.select выпадающее окно для этого атрибута, но теперь нам нужно иметь возможность выбрать несколько status одновременно.

форма:

 <%= search_form_for @search, url: admin_payments_path, html: {class: "form-inline"} do |f| %>
  <div class="form-group">
    <%= f.select :status_eq, payment_status_selector, { include_blank: "Payment status.."}, class: "form-control gray" %>
  </div>  
<% end %>
  
 

Я пытался:

 <%= f.select :status_eq, payment_status_selector, {include_blank: false}, {multiple: true, as: :radio_buttons}  %>
 

дает мне поле выбора со всеми опциями, позволяющими мне выбрать несколько, но это не radio_buttons так, и "" вместе с выбранными опциями передается пустое значение.

     <% payment_status_selector.each do |status| %>
      <%= radio_button_tag :status_eq, "#{status[1]}", false,  class: 'radio-checkbox' %>
      <%= label_tag( "#{status[0]}") %>
    <% end %>
 

Это дает мне radio_button оценку для каждого возможного status , но я не могу выбрать более одного.

Я не могу понять, как правильно это сделать. Может быть, с check_boxes помощью лучшего варианта можно выбрать/отменить выбор статусов?

Комментарии:

1. В этом случае поисковое поле лучше и удобнее (UX).

2. Что именно вы имеете в виду? Как я могу выбрать несколько статусов в поле поиска? @zswqa

Ответ №1:

Да, использование check_box будет лучшим вариантом.

Попробуй,

 <% payment_status_selector.each do |status| %>
  <%= f.check_box :payment_statuses, { multiple: true }, status, false %>
  <%= label status %>
<% end %>
 

И вы можете ожидать, что значения в контроллере от параметров будут такими:

{ поиск: { статусы платежей: [«статус 1», «статус 2»] }

убедитесь, что payment_status_selector это возвращает массив значений.

Надеюсь, это помогло.

Ссылка: https://medium.com/programming-problem-solving-logbook/rails-multiple-checkboxes-e9c4c7fda356