Rails中collection_select中的多个属性

时间:2018-03-04 02:51:56

标签: ruby-on-rails collection-select

我试图允许从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>

感谢您的帮助。

1 个答案:

答案 0 :(得分: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。将它移动到第二个哈希,你应该没问题。