ruby-on-rails 在HAML ruby on rails中创建复选框下拉列表的方法

l5tcr1uw  于 2023-04-13  发布在  Ruby
关注(0)|答案(1)|浏览(120)

我有一个简单的表格,我用它来过滤一个学生表。通过使用f.collection_check_boxes,我得到了一个丑陋的复选框段落。我想有一个下拉列表,让我可以一次选择多个复选框。
我现在的代码是

.card-header.d-flex.align-items-center
    %span Listing Students

    = link_to 'New Student', new_student_path, class: 'btn btn-outline-secondary ms-auto'
    %button.btn.btn-outline-secondary.dropdown-toggle.mr-2#filter-button{"type": "button", "data-bs-toggle": "dropdown", "aria-expanded": "false"}
      Filter
    %ul.dropdown-menu{"aria-labelledby": "filter-button"}
      %li
        = simple_form_for :filter, url: filter_students_path, method: :post do |f|
          = f.input :givenname
          %div
            = f.collection_check_boxes(:course_ids, Course.all, :id, :course_code)
            = button_tag 'SELECT', type: 'button', class: 'select_btn'
            %br
          %div
            = f.collection_select(:location_ids, Location.all, :id, :location_name, multiple :true)
            = button_tag 'SELECT', type: 'button', class: 'select_btn'
            %br
          %div
            = f.collection_check_boxes(:sector_ids, Sector.all, :id, :sector_name)
            = button_tag 'SELECT', type: 'button', class: 'select_btn'
            %br
          = f.submit 'Search'
          = link_to 'Reset', students_path

它产生了一个按钮,当点击有一个下拉菜单的多组选项,以过滤由即时通讯测试不同的方法,现在只有一个选项,所以collection_select结果在一个列表,允许我检查多个当我点击+ shift键,但我希望这些是一个下拉的复选框,而不是一个列表。

z0qdvdin

z0qdvdin1#

根据这个答案,我会在你的下拉列表中使用列表:Rails collection_check_boxes - wrap each checkbox with
我不使用HAML,所以我不能给予你一个明确的例子,但类似于:

<ul style="list-style-type: none;">
<%= f.collection_check_boxes :course_ids, Course.all, :id, :course_code do |b| %>
  <li>
   <%= b.label { b.check_box } %>
  </li>
<% end %>
</ul>

请注意应用于的样式,以防止向<li>元素添加项目符号。

相关问题