gem 'country_select', github: 'stefanpenner/country_select' 不支持 rails 4

gem 'country_select', github: 'stefanpenner/country_select' is not working with rails 4

我在我的 gem 文件中使用 gem 'country_select', github: 'stefanpenner/country_select',在我的表单中我这样定义它:

<%= form_for(@account_detail) do |f| %>

  <div class="field">
    <%= f.label :city %><br>
    <%= f.text_field :city %>
  </div>
  <div class="field">
    <%= f.label :zip %><br>
    <%= f.number_field :zip %>
  </div>
  <div class="field">
    <%= f.label :first_name %><br>
    <%= f.text_field :first_name %>
  </div>
  <div class="field">
    <%= f.label :last_name %><br>
    <%= f.text_field :last_name %>
  </div>
  <div class="field">
    <%= f.label :country %><br>
    <%= f.country_select("account_detail", "country") %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

提交时出现错误ActionView::Template::Error (wrong number of arguments (4 for 0)):

哪个 gem 最适合显示所有国家/地区?

我会使用:

<%= f.country_select :country %>

如果您想优先考虑 select 中的某些国家/地区,请将它们传入数组:

 <%= f.country_select :country, {priority_countries: %w(<COUNTRY CODE i.e. US>), prompt: 'Select Country'} %>

您可以添加 class: 'your-class'id 或任何其他字段,如果您愿意的话。希望能帮助到你。

我通过在我的模型中添加这个方法解决了这个问题:

def country_name
    country = ISO3166::Country[country_code]
    country.translations[I18n.locale.to_s] || country.name
  end

并在视图中更改给定行:

<%= f.country_select("account_detail", "country") %>

对此:

<%= f.country_select :country, format: :with_alpha2 %>

希望这对遇到此问题的其他人有所帮助。

这应该可以!

<%= f.country_select :country, { priority_countries: ["GB", "US"], selected: "GB" } %>