Rails radio_buttons同一个属性可以多选吗?
Rails radio_buttons multiple selection for same attribute, is it possible?
我有一个 search_form_for
,我需要能够 select 多次付款 status
es 来进行 Ransack 搜索。
我们已经有这个属性的 f.select
下拉框,但我们现在需要能够同时 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} %>
给了我一个 select 框,其中包含允许我 select 多个选项的所有选项,但它们不是 radio_buttons
并且传递了一个空值 ""
selected 选项。
<% 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
,但我不能 select 超过一个。
我想不出正确的方法。也许 check_boxes
是能够达到 select/unselect 状态的更好选择?
是的,使用 check_box 将是更好的选择。
试试,
<% payment_status_selector.each do |status| %>
<%= f.check_box :payment_statuses, { multiple: true }, status, false %>
<%= label status %>
<% end %>
您可以从参数中得到控制器中的值:
{ search: { payment_statuses: ["status 1", "status 2"] }
确保 payment_status_selector
returns 值数组。
希望对您有所帮助。
参考:https://medium.com/programming-problem-solving-logbook/rails-multiple-checkboxes-e9c4c7fda356
我有一个 search_form_for
,我需要能够 select 多次付款 status
es 来进行 Ransack 搜索。
我们已经有这个属性的 f.select
下拉框,但我们现在需要能够同时 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} %>
给了我一个 select 框,其中包含允许我 select 多个选项的所有选项,但它们不是 radio_buttons
并且传递了一个空值 ""
selected 选项。
<% 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
,但我不能 select 超过一个。
我想不出正确的方法。也许 check_boxes
是能够达到 select/unselect 状态的更好选择?
是的,使用 check_box 将是更好的选择。
试试,
<% payment_status_selector.each do |status| %>
<%= f.check_box :payment_statuses, { multiple: true }, status, false %>
<%= label status %>
<% end %>
您可以从参数中得到控制器中的值:
{ search: { payment_statuses: ["status 1", "status 2"] }
确保 payment_status_selector
returns 值数组。
希望对您有所帮助。
参考:https://medium.com/programming-problem-solving-logbook/rails-multiple-checkboxes-e9c4c7fda356