使用 f.select 通过 grouped_options_for_select 设置默认值

kdu*_*bss 5 ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

我有一个由以下内容呈现的分组下拉菜单,

= f.select :location_id, 
           grouped_options_for_select(grouped_location_options, 
                                      default_location_name), 
           { selected: default_location_name }, 
           class: 'form-control'
Run Code Online (Sandbox Code Playgroud)

我希望将默认值设置为Unassigned,但上面的代码似乎没有执行我想要的操作。

有人可以给我一些线索来解决这个问题吗?

提前谢谢了!

rah*_*hra 4

您可以采用以下任意格式提供组选项:

    grouped_options = {
          'North America' => [['United States','US'], 'Canada'],
          'Europe' => ['Denmark','Germany','France']
        }
Run Code Online (Sandbox Code Playgroud)

或者

 grouped_options = [
   ['North America', [['United States','US'],'Canada']],
   ['Europe',['Denmark','Germany','France']]
 ]
Run Code Online (Sandbox Code Playgroud)

要选择我们和 Denmak,请使用以下代码:

grouped_options_for_select(grouped_options, ['US', 'Denmark'])
Run Code Online (Sandbox Code Playgroud)

更新:

grouped_options = {
      'Unassigned' => [['Unassigned','1']],
      'Assigned' => [['Trainer 1 Location', 3], ['Trainer 5 Location', 4]] 
    }
Run Code Online (Sandbox Code Playgroud)

选择未分配使用:grouped_options_for_select(grouped_options, ['1'])

选择默认分配的未分配的通行证 IDgrouped_option_from_select