2015-12-01 52 views
0

默認情況下,這給了我一個多選由於是一個的has_many關係:我如何使用simple_form進行多重分組選擇?

<%= 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

你看'''偶然grouped_options_for_select'''? http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/grouped_options_for_select您可以按常規方式構建多選,並將其傳遞給已構建的選項。 – John

回答

1

我想出了我自己的想法。

這產生正確的輸出:

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

的關鍵部分是:

input_html: { :multiple => true } 
相關問題