默认情况下,这为我提供了一个多重选择,因为它是一个has_many关系:
<%= f.association :tags %>
但是,我想根据类别对我的标签进行分组。然而,当我这样做时,我的选择成为正常选择,只允许一个选择。换句话说,输入上的“多个”属性消失了。
<%= f.association :tags, as: :grouped_select, collection: TagGroup.all, group_method: :tags %>
我尝试了不同的建议,例如添加html: {multiple: "multiple"}
或简单multiple: true
,但都没有任何效果。
我错过了什么吗?在这种情况下,我认为没有理由为什么我的选择不能成为倍数,因为所有分组选择应该是添加optgroup
标签。
这是我没有进行分组选择的标签:
<select multiple="multiple" class="select optional" name="news_story[tag_ids][]" id="news_story_tag_ids">
使用分组选择:
<select class="grouped_select optional" name="news_story[tag_ids]" id="news_story_tag_ids">
它似乎也破坏了name属性,但我还没有测试是否存在问题。
编辑:我会选择grouped_collection_select
帮助程序,但这也不提供添加属性的选项哈希。
http://apidock.com/rails/v4.2.1/ActionView/Helpers/FormOptionsHelper/grouped_collection_select
答案 0 :(得分:1)
我自己想出来了。
这产生了正确的输出:
<%= f.association :tags, as: :grouped_select, collection: TagGroup.all, group_method: :tags, input_html: { :multiple => true } %>
关键部分是:
input_html: { :multiple => true }