学習記録

アウトプット用に作りました

enumをi18n対応させるenum_helpを導入する

enumとは

数字を値と紐付けているようなデータの管理をしたいときに使います。
例えば管理者権限の有無を管理する場合などに使うことができます。

(user.rb)
enum role: { general: 0, admin: 1 }

このように、数字で管理をしているだけだと、わかりづらいですが、
文字で管理することができるので、直感的になります。


enumi18n対応させる

数字から文字列になり少しわかりやすくなりましたが、
英語よりも日本語表記の方がわかりやすくなりますよね。

そこで使うのが、enum_helpというgemです。


enum_helpの使用方法

まずGemfileにgem 'enum_help'を導入して、bundle installをします。


それからlocalesファイルに追記していきます。

(config/locals/ja.yml)
enums:
      user:
        role:
          general: '一般'
          admin: '管理者'

追記するファイルは、localsファイルを多数作って管理している場合は、
どこでも扱いやすいところに追記すれば大丈夫です。


これであとは呼び出すだけです。
◯◯_i18nとするだけで使うことができるようになります。

User.roles
=> {"general"=>0, "admin"=>1}

User.roles_i18n
=> {"general"=>"一般", "admin"=>"管理者"}