我在我的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)):
哪种宝石最适合展示所有国家?
答案 0 :(得分:1)
我会用:
<%= f.country_select :country %>
如果您想优先选择select中的某些国家/地区,请将它们传入数组:
<%= f.country_select :country, {priority_countries: %w(<COUNTRY CODE i.e. US>), prompt: 'Select Country'} %>
如果您愿意,可以添加class: 'your-class'
和id
或其他任何字段。希望能帮助到你。
答案 1 :(得分:1)
这应该做!
<%= f.country_select :country, { priority_countries: ["GB", "US"], selected: "GB" } %>
答案 2 :(得分: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 %>
希望这对那些将面临这个问题的人有所帮助。