grouped_options_for_select ожидает хэш, который выглядит следующим образом:
{
'group name 1': [
[select name, select value],
[select name, select value]
],
'group name 2': [
[select name, select value],
[select name, select value]
]
}
Итак, нам нужно только взять исходную структуру данных и преобразовать ее в этот формат:
@data = {"EMEA"=>[{:id=>"1563", :url=>"https://website.com", :name=>"TemplateNameA", :region=>"EMEA", :another_key=>"another value", :contain_count=> 0}, {:id=>"7819", :url=>"https://website.com", :name=>"TemplateNameB", :region=>"EMEA", :another_key=>"another value", :contain_count=>0}], "Central"=>[{:id=>"421", :url=>"https://website.com", :name=>"TemplateNameA", :region=>"Central", :another_key=>"another value", :contain_count=>0}], "East"=>[{:id=>"12", :url=>"https://website.com", :name=>"TemplateName1", :region=>"East", :another_key=>"another value", :contain_count=>0}]}
@options = {}
@data.each do |name,data|
@options[name] = data.collect do |x|
[x[:name], x[:id]]
end
end
Это перебирает все ваши оригинальные ключи Hash, а затем создает новый массив для каждого элемента массива, сохраняя только имя и идентификатор.
Затем передайте @options в grouped_options_for_select, и вы должны быть в бизнесе!