如何在 table 形式中使用 check_box 以便我可以访问数组中的 table 属性?

How do I use check_box in a table form so that I can access the table attributes in an array?

我在表单中有一个 table,代码如下:

<tbody>
        <% @appointments.each do |appointment| %>

            <td class="collapsing">
                <div class="ui fitted slider checkbox">
                <%= f.check_box appointment.id %><label></label>
                </div>
            </td>
            <td><%= appointment.name %></td>

        <% end %>
</tbody>

所以会生成一个复选框,但是如果我选择多个复选框,我会得到

Parameters: {"utf8"=>"✓", "authenticity_token"=>"qCo02PG1F2wrSK4sxCQiQLzuhG4vZypgd9p5LzP9Sp7uZQFHs8tTTitLR++VXVK3f68P0qih+iQBlZt9anG01Q==", "cleaner"=>{"4"=>"1", "5"=>"0", "2"=>"0", "3"=>"0", "6"=>"0"}, "commit"=>"Request", "cleaner_id"=>"1"}

所以要访问约会,我会做 parameters["cleaner"] 并得到 <ActionController::Parameters {"4"=>"1", "5"=>"1", "2"=>"0", "3"=>"0", "6"=>"0"} permitted: false>

我想要做的是获取数组而不是散列。

Hash class 提供了keys 方法,该方法将return 的键值散列为一个数组。 所以 parameters["cleaner"].keys 就是您(可能)正在寻找的东西。

我想您需要对复选框进行一些自定义,例如:

<% @appointments.each do |appointment| %>
  <td class="collapsing">
    <div class="ui fitted slider checkbox">
      <%= check_box_tag "cleaner[appointment_ids][]", appointment.id %><label></label>
    </div>
  </td>
  <td><%= appointment.name %></td>
<% end %>

这样你应该有类似 params[cleaner][appointment_ids] 的东西来获得选定的约会