Rails中collection_select中的多个属性

问题描述 投票:1回答:1

我试图允许从Rails表单中的集合中选择多个值。该字段正在运行但不允许多个选择(一旦选择了备选选项,则先前选择的选项未被选中)。我正在使用Bootstrap CDN,我不认为这会导致问题,但我可能错了?

你能看到这段代码有什么问题吗?

  <div class="field form-group row">
      <%= f.label :industry_ids, class:"col-sm-3"%>
      <%= f.collection_select(:industry_ids, Industry.all, :id, :name, {:multiple => true}, size: Industry.all.length) %>
    </div>

谢谢你的帮助。

ruby-on-rails collection-select
1个回答
0
投票

我相信你的问题是你把{:multiple => true}放在错误的选项哈希中。 collection_select的方法签名如下所示:

collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})

multiple是select标签本身的html属性(这里是doc),所以你想把它传递给html_options,而不是options。您的代码如下所示:

f.collection_select(:industry_ids, Industry.all, :id, :name, {:multiple => true}, size: Industry.all.length)

Industry.allcollection:idvalue_method:nametext_method,这意味着{ :multiple => true }传递给options,而不是html_options。将它移动到第二个哈希,你应该没问题。

© www.soinside.com 2019 - 2024. All rights reserved.