1

我有一个用户模型,它具有在模块中定义的角色。简而言之,

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方法是什么?

4

1 回答 1

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"
于 2013-05-29T19:23:45.433 回答