どうもてぃです。
enumについてあんまり理解してなかったのでメモとして残します。
gemのenum_help
を入れている状態です。
環境
% lsb_release -a No LSB modules are available. Distributor ID: LinuxMint Description: Linux Mint 19.3 Tricia Release: 19.3 Codename: tricia
TL; DR
User model
class User < ApplicationRecord enum role: { admin: 0, manage: 1, guest: 2 } ・ ・ ・ end
locales/js.yml
ja: enums: user: role: admin: 管理者 manage: マネージャー guest: 一般 ・ ・ ・
コンソール
pry(main)> User.roles => {"admin" => 0, "manage" => 1, "guest" => 2} pry(main)> User.roles_i18n => {"admin" => "管理者", "manage" => "マネージャー", "guest" => "一般"}
終わり
Userのインスタンスから取得することもできますが、今回はインスタンスを生成せずにenumを使いたかったので、i18nを試してみたらいけました。
User.roles_i18n.invert
とすればselect_boxとかに使えそうですね。