在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走出人迹罕至的道路时会发生的事情。 🙂
这是我在谷歌上发现的一个参考:
您也可以使用Hash而不是嵌套数组:
grouped_options = { 'North America' => [['United States','US'], 'Canada'], 'Europe' => ['Denmark','Germany','France'] } <%= select_tag "foo[bar]", grouped_options_for_select(grouped_options, 'Denmark') %>
这里还有一个选定的选项(’丹麦’)