Rails Simple_Form: как показать длинное название страны

Я использую simple_form gem для выбора страны:

= simple_form_for @shop, :url => { :action => "create" }, :html => {:id => 'new_shop' } do |f|
  = f.simple_fields_for :address, :html => {:multipart => true} do |o|
    = o.input :country, :label => "Country"

Но название страны сохраняется в базе данных в сокращенном формате (например, RU, FR, AU и т. д.).

Интересно, а как в представлениях показывать полное, длинное название страны? Спасибо!


person Al17    schedule 18.09.2014    source источник
comment
Взгляните на эту жемчужину?   -  person Nitish Parkar    schedule 18.09.2014
comment
Есть длинный формат в базе данных?   -  person Зелёный    schedule 18.09.2014
comment
@Nitish, спасибо, посмотрю!   -  person Al17    schedule 18.09.2014
comment
@Зелёный, нет, в БД в укороченном формате.   -  person Al17    schedule 18.09.2014
comment
Вы поняли это? у меня такая же проблема как у тебя   -  person Mel    schedule 04.01.2016


Ответы (1)


На самом деле неплохо было бы сохранить код страны в базе данных (а не длинное название), потому что I18n. Имея код, вы можете получить в дальнейшем имя следующим образом:

class User < ActiveRecord::Base
  # Assuming country_select is used with User attribute `country_code`
  # This will attempt to translate the country name and use the default
  # (usually English) name if no translation is available
  def country_name
    country = ISO3166::Country[country_code]
    country.translations[I18n.locale.to_s] || country.name
  end
end

Проверьте: country_select: Получение названия страны из стран драгоценный камень

person jcgil    schedule 06.03.2015