如何在 Rails 视图中使用 Bootstrap 多选?

How to use Bootstrap Multiselect in Rails views?

我正在尝试在我的 rails 应用程序中实现 bootstrap 多 select 字段。

利用此处找到的 bootstrap-multiselect_rails gem (https://github.com/TrevorS/bootstrap-multiselect_rails)

已成功安装和配置,但在我的表单中无法 select 多个值。它允许我 select 只有一个值。

现在我的代码如下所示:

<%= f.collection_select :role_pm, User.where(:user_role => 'Project Manager'), :name, :name, {}, {:multiple => 'true'}, {class: "role_pm"} %>

我哪里错了?

.您需要使用 js.

初始化 Multiselect

这是我的工作代码:-

###HTML FILE
##my controller has @event_types to autopopulate the values as well for edit action
<label for="events" class="control-label form-group col-md-12">Event Type: </label>   
  <div class="form_group col-md-12">
     <div class="btn-group">
          <%= select_tag("event_types", options_for_select(@event_types.pluck(:name),:multiple=>true,:required=>true) %>

      </div>       
  </div>  


###js FILE-initialise using id/class for multiselect
        $('#event_types').multiselect({
            enableFiltering: true,
            filterBehavior: 'text',
            enableCaseInsensitiveFiltering: true,
            nonSelectedText: 'Select the type of events'
        });  

您可以在 select 标签中使用 selected 属性到 select 编辑期间的那些值 action.Just 从控制器传递它..示例

:selected => @event_types.new_record? ? nil : @event_types.pluck(:name)

重写您的查询...

<%= select_tag("event_types", options_for_select(@event_types.pluck(:name),:multiple=>true,:required=>true) %> 

更改为:在 select 下拉列表中显示名称

<%= select_tag("role_pm", options_for_select(User.where(:user_role => 'Project Manager').pluck(:name).uniq,:multiple=>true,:required=>true) %> 

终于成功了。我已经更新了这个答案中的代码行,这让我在过去两天左右很痛苦

<%= f.collection_select :role_pm, User.where(:user_role => 'Project Manager'), :name, :name, {}, :multiple => 'true', :class => 'role_pm' %>

看起来我已经将 multiple 和 class 属性作为单独的数组传递,这在一开始确实不需要。