0

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

<%= 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)):

哪个宝石最适合展示所有国家/地区?

4

3 回答 3

1

我会使用:

<%= f.country_select :country %>

如果您想在选择中优先考虑某些国家/地区,请将它们以数组的形式传入:

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

如果您愿意,您可以像添加任何其他字段一样添加class: 'your-class'和/或任何内容。id希望能帮助到你。

于 2015-04-07T09:40:50.210 回答
1

这应该做!

<%= f.country_select :country, { priority_countries: ["GB", "US"], selected: "GB" } %>
于 2015-11-27T15:47:54.770 回答
0

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

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 %>

希望这将有助于其他将面临这个问题的人。

于 2015-04-08T05:04:21.567 回答