enum
enumの定義
カラム(Integer型)に入る整数値と変数名を紐付ける(例:管理者権限)。
class User enum role: { general: 0, admin: 1 }
enumを定義するとできること
# インスタンスの値を変数名で取得 @user.role => "general" # インスタンスに変数名で値を格納 @user.role = "admin" #インスタンスの値を判定 @user.admin? => false # enum定義を参照 User.roles => {"general"=>0, "admin"=>1} # 変数名に割り当てられている値を取得 User.roles[:general] => 0
enumのi18n対応
gem 'enum_help'を利用
gem 'enum_help'
% bundle install
(カラム名)_i18nで属性値やenum定義を翻訳して取得できる。
@user.role_i18n => "管理者" # 単数形 User.roles_i18n => {"general"=>"一般", "admin"=>"管理者"} # 複数形