2009-07-28 9 views
9

簡単な質問 - どのように私はグループ化されたオプションを選択(ActionView ::ヘルパー:: FormOptionsHelper)を使うのですか?グループ化された選択は本当に

私はselect_tag(ActionView ::ヘルパー:: FormTagHelper)と協力し、それを持っているが、私は実際にそれがフォームの残りの部分と一致するように選択したタグを使用して持っていると思います。これは可能ですか?

私のオプションは、次のようになります。私の見解は、現在ある間

[ 
    ['Group 1', ["Item 1", "Item 2", "Item 3"]], 
    ['Group 2',["Item 1", "Item 2", "Item 3", "Item 4"]] 
] 

%tr#expense 
    %td 
    = f.text_field :value 
    = f.hidden_field :type, :value => mode 

答えて

22

編集

修正、あなたはあなたが必要と配列を使用しているので、grouped_options_for_select

E XAMPLE:あなたはこれをラップするタグを選択あなた自身を提供する必要があり

<optgroup label="Group 1"> 
    <option value="Item 1">Item 1</option> 
    <option value="Item 2">Item 2</option> 
    <option value="Item 3">Item 3</option> 
</optgroup> 
<optgroup label="Group 2"> 
    <option value="Item 1">Item 1</option> 
    <option value="Item 2">Item 2</option> 
    <option value="Item 3">Item 3</option> 
    <option value="Item 4">Item 4</option> 
</optgroup> 

注:

grouped_options = [ 
    ['Group 1', 
    ["Item 1", "Item 2", "Item 3"]], 
    ['Group 2', 
    ["Item 1", "Item 2", "Item 3", "Item 4"]] 
] 
grouped_options_for_select(grouped_options) 

次印刷します。 選択グループ化を行う機能はありません。この方法だけです。

あなたは無口乗り越える必要があります。あなたが聞いて何をすべきかRailsのウェイ(TM)はgrouped_options_for_selectでselect_tagを使用することです:

<%= select_tag "foo[bar]", 
grouped_options_for_select(@bars) %> 

これは、あなたがRailsので穴場行くときに何が起こるかです。選択されたオプションもあり、ここで

grouped_options = { 
'North America' => [['United States','US'], 'Canada'], 
'Europe' => ['Denmark','Germany','France'] 
} 


<%= select_tag "foo[bar]", 
grouped_options_for_select(grouped_options, 'Denmark') %> 

:あなたはまた、代わりに、ネストされた配列のハッシュを使用することができます

http://www.ruby-forum.com/topic/185407

+0

は、あなたが実際にこの例を持っていますか?私はドキュメントでこれを見ましたが、それを動作させる方法を理解することはできません。 –

+0

@Neil:これは、伝統的な選択では動作しないことを除いて、も結構です – hobodave

+1

上記を参照してください。私はselect_tagを使用することに躊躇しています。それは、素早く要素の名前を試してみる必要があることを意味します。 –

6

::)ここ

は、私はちょうどGoogleで見つけたリファレンスです(「デンマーク」)

関連する問題