simple_form и сгруппированный выбор из массива

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

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

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


person Artur79    schedule 16.04.2012    source источник


Ответы (2)


Беглый взгляд на документацию на 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.

person GorrillaMcD    schedule 02.05.2012

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

person Fillype Farias    schedule 04.10.2017