Ruby on Rails

【Ruby on Rails】gem "enum_help" を使って enum を i18n対応する

RailsのActiveRecordでenumを使うときは、gem enum_help を利用すると便利

enum_help の設定方法

1. gem のインストール

Gemfile に下記を追記して、bundle install

gem 'enum_help'

2. i18nの設定

config/application.rb に下記を追加

    config.time_zone = 'Tokyo'
    config.i18n.default_locale = :ja
    config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]

3. enum の設定

config/locales/models/hogehoge/ja.yml にファイルを作成(モデルごとに作ったほうが見やすい)

ja:
  activerecord:
    models:
      hogehoge: ほげほげモデル
    attributes:
      hogehoge
        name: 名前
        status: ステータス
  enums:
    hogehoge:
      status:
        temporary: 未公開
        active: 公開

4. あとは呼び出すだけ

Hogehoge.statuses_i18n
=> {"temporary"=>"未公開", "active"=>"公開"}

-Ruby on Rails