在Rails中分组选择

真的很简单的问题 – 如何将select(ActionView :: Helpers :: FormOptionsHelper)与分组选项一起使用?

我已经使用了select_tag(ActionView :: Helpers :: FormTagHelper),但我真的希望使用select标签来匹配表单的其余部分。 这可能吗?

我的选项看起来像这样:

[ ['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 

编辑

更正,因为你正在使用数组,你需要groups_options_for_select

例:

 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) 

打印以下内容:

            

请注意,您必须提供自己的选择标记来包装它。 没有选择function可以为您进行分组,只有这种方法。

你应该克服你的沉默。 执行所要求的Rails方式(tm)是将select_tag与grouped_options_for_select一起使用:

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

这就是当你使用Rails走出人迹罕至的道路时会发生的事情。 🙂

这是我在谷歌上发现的一个参考:

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

您也可以使用Hash而不是嵌套数组:

 grouped_options = { 'North America' => [['United States','US'], 'Canada'], 'Europe' => ['Denmark','Germany','France'] } <%= select_tag "foo[bar]", grouped_options_for_select(grouped_options, 'Denmark') %> 

这里还有一个选定的选项(’丹麦’)