2012-04-16 2 views
2

Как создать выбор с помощью сгруппированных опций с помощью simple_form из таблицы, а не из коллекции? Пробовал:simple_form и сгруппированный выбор из массива

= f.input :countries, 
:collection => [["North America",[["United States","US"],["Canada","CA"]]]], 
:as => :grouped_select 

но получил ошибку: ноль не является символом

ответ

5

Беглый взгляд на документацию по https://github.com/plataformatec/simple_form показывает, что вам нужно :group_method => :method на collection_select.

Вот полный пример они дают: f.input :country_id, :collection => @continents, :as => :grouped_select, :group_method => :countries

Кроме того, только в том случае, если вы не знаете, simple_form имеет помощника country_select и вам необходимо добавить к вашему gem 'country_select' Gemfile, если вы планируете использовать его.

country_select с помощью этого помощника может выглядеть следующим образом: f.input :shipping_country, :priority => [ "Brazil" ] с возможностью ограничить список только несколько стран, как так: f.input :shipping_country, :priority => [ "Brazil" ], :collection => [ "Australia", "Brazil", "New Zealand"] Эти примеры были найдены в simple_form документации в разделе «Приоритет»: http://rubydoc.info/github/plataformatec/simple_form/master/frames. По-видимому, simple_form обнаружит, что это для страны, поэтому достаточно использовать input.

0

В моем случае, только работал, когда я использовал as: :grouped_select и :group_method => :last