0

私は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)):

すべての国を表示するのに最適な宝石はどれですか?

4

3 に答える 3

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 に答える