Ruby on rails 模型内常数的I18n

Ruby on rails 模型内常数的I18n,ruby-on-rails,rails-i18n,Ruby On Rails,Rails I18n,我有一个用户模型,在模块中定义了角色。总之, class User < ActiveRecord::Base (...) module Roles Admin = 0 SuperPrefeitura = 1 Prefeitura = 2 Instituicao = 3 end def is_admin? role == Roles::Admin end (...) end 和翻译:

我有一个用户模型,在模块中定义了角色。总之,

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

  def is_admin?
    role == Roles::Admin
  end
  (...)  
end
和翻译:管理员

但它看起来不像是一个好的解决方案


做这件事的最佳方法是什么?

两个月后D

有一颗宝石正好解决了我的问题。

示例用法(来自github):

型号:

class User < ActiveRecord::Base
  extend Enumerize

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

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

两个月后!: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"