class Formtastic::Inputs::CountryInput
Outputs a country select input, wrapping around a regular country_select helper. Rails doesn't come with a `country_select` helper by default any more, so you'll need to do one of the following:
-
install the [country_select](github.com/stefanpenner/country_select) gem
-
install any other country_select plugin that behaves in a similar way
-
roll your own `country_select` helper with the same args and options as the Rails one
Formtastic supports both 1.x and 2.x of stefanpenner/country_select, but if you're upgrading from 1.x, they behave quite differently, so please see their [upgrade instructions](github.com/stefanpenner/country_select/blob/master/UPGRADING.md).
By default, Formtastic includes a handful of English-speaking countries as “priority countries”, which can be set in the `priority_countries` configuration array in the formtastic.rb initializer to suit your market and user base (see README for more info on configuration). Additionally, it is possible to set the :priority_countries on a per-input basis through the `:priority_countries` option. These priority countries will be passed down to the `country_select` helper of your choice, and may or may not be used by the helper.
@example Basic example with full form context using `priority_countries` from config
<%= semantic_form_for @user do |f| %> <%= f.inputs do %> <%= f.input :nationality, :as => :country %> <% end %> <% end %> <li class='country'> <label for="user_nationality">Country</label> <select id="user_nationality" name="user[nationality]"> <option value="...">...</option> # ... </li>
@example `:priority_countries` set on a specific input (country_select 1.x)
<%= semantic_form_for @user do |f| %> <%= f.inputs do %> <%= f.input :nationality, :as => :country, :priority_countries => ["Australia", "New Zealand"] %> <% end %> <% end %> <li class='country'> <label for="user_nationality">Country</label> <select id="user_nationality" name="user[nationality]"> <option value="...">...</option> # ... </li>
@example `:priority_countries` set on a specific input (country_select 2.x)
<%= semantic_form_for @user do |f| %> <%= f.inputs do %> <%= f.input :nationality, :as => :country, :priority_countries => ["AU", "NZ"] %> <% end %> <% end %> <li class='country'> <label for="user_nationality">Country</label> <select id="user_nationality" name="user[nationality]"> <option value="...">...</option> # ... </li>
@see Formtastic::Helpers::InputsHelper#input InputsHelper#input for full documentation of all possible options.
Public Instance Methods
# File lib/formtastic/inputs/country_input.rb, line 78 def priority_countries options[:priority_countries] || builder.priority_countries end
# File lib/formtastic/inputs/country_input.rb, line 70 def to_html raise "To use the :country input, please install a country_select plugin, like this one: https://github.com/stefanpenner/country_select" unless builder.respond_to?(:country_select) input_wrapping do label_html << builder.country_select(method, priority_countries, input_options, input_html_options) end end