2015-04-07 3 views
0

Я использую gem 'country_select', github: 'stefanpenner/country_select' в моем файле гем и в моей форме я определил это следующим образом:камень «country_select», GitHub: «stefanpenner/country_select» не работает с рельсами 4

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

Какой драгоценный камень лучше всего показать всем странам?

+0

Я думаю, что проблема с версией country_select gem связана с вашими рельсами, проверьте эту версию. – django

+0

Я пробовал его со всеми его версиями, его не работает – railslearner

ответ

1

Я хотел бы использовать:

<%= f.country_select :country %> 

Если вы хотите, чтобы приоритеты некоторых стран выбора передать их в в массиве:

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

Вы можете добавить class: 'your-class' и id или что-то так же, как с любое другое поле, если хотите. Надеюсь, поможет.

+0

его не работает :( – railslearner

+0

какая версия жемчужины вы используете? Попробуйте заблокировать 'gem 'country_select', '~> 2.1.0'' или' 2.2.0 'Во всяком случае, он работает для меня в rails 4.1.8/ruby ​​2.1.2 – Thomas

+0

меня с рельсами version4.1.0 и ruby ​​2.1.5p273 и gem 'country_select', '~> 2.1.0' все еще не работает с 2.2.0 также нет улучшения – railslearner

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

Надеется, что это поможет кому-то другому, кто столкнется с этой проблемой.

1

Это должно быть сделано!

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