Rails radio_buttons 多个选择相同的属性,这可能吗?

Posted

技术标签:

【中文标题】Rails radio_buttons 多个选择相同的属性,这可能吗?【英文标题】:Rails radio_buttons multiple selection for same attribute, is it possible? 【发布时间】:2021-10-04 04:49:54 【问题描述】:

我有一个search_form_for,我需要能够选择多个付款statuses 来进行 Ransack 搜索。

我们已经为该属性提供了一个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 %>

这为每个可能的status 提供了一个radio_button,但我不能选择多个。

我想不出正确的方法。也许check_boxes 是一个更好的选择/取消选择状态的选择?

【问题讨论】:

在这种情况下,搜索框更好更方便(UX)。 你到底是什么意思?如何从搜索框中选择多个状态? @zswqa 【参考方案1】:

是的,使用 check_box 会是更好的选择。

试试,

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

您可以从参数中期望控制器中的值如下:

搜索: payment_statuses: ["status 1", "status 2"]

确保 payment_status_selector 返回值数组。

希望有所帮助。

参考:https://medium.com/programming-problem-solving-logbook/rails-multiple-checkboxes-e9c4c7fda356

【讨论】:

以上是关于Rails radio_buttons 多个选择相同的属性,这可能吗?的主要内容,如果未能解决你的问题,请参考以下文章

Rails simple_form - 是否可以只显示按钮标签的radio_buttons?

与 Rails 的多个关联已审核

在 Rails 3 应用程序中添加页面特定 JavaScript 的最佳方法?

Rails 3:如何汇总多个集合选择?

Rails 3中单个记录的多个外键?

markdown 当您单击复选框/ radio_button时,禁用其他区域。