I18n констант внутри модели

У меня есть модель пользователя, в которой есть роли, определенные в модуле. Короче говоря,

class User < ActiveRecord::Base
  (...)
  module Roles
    Admin           = 0
    SuperPrefeitura = 1
    Prefeitura      = 2
    Instituicao     = 3
  end

  def is_admin?
    role == Roles::Admin
  end
  (...)  
end

Хороший. Теперь я хочу показать роль пользователя, используя i18n. Решение было бы

def role_name
  case role
  when Roles::Admin
    :admin
  end
  (...)
end

И переведи :admin

Но это не похоже на good решение.

Как это best сделать?


person Cristopher    schedule 28.03.2013    source источник


Ответы (1)


И через два месяца! :D

Есть жемчужина, которая решает именно мою проблему. перечислить.

Пример использования (из github):

Модель:

class User < ActiveRecord::Base
  extend Enumerize

  enumerize :sex, in: [:male, :female]

  enumerize :role, in: [:user, :admin], default: :user
end

локали:

en:
  enumerize:
    user:
      sex:
        male: "Male"
        female: "Female"
person Cristopher    schedule 29.05.2013