如何使用simple_form进行多组分组选择?

时间:2015-12-01 18:28:35

标签: ruby-on-rails ruby html5 ruby-on-rails-4 simple-form

默认情况下,这为我提供了一个多重选择,因为它是一个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

1 个答案:

答案 0 :(得分:1)

我自己想出来了。

这产生了正确的输出:

<%= f.association :tags, as: :grouped_select, collection: TagGroup.all, group_method: :tags, input_html: { :multiple => true } %>

关键部分是:

input_html: { :multiple => true }