1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Ruby on Rails】enumの導入・日本語表記の方法

Posted at

開発環境

Rails 6.1.4
ruby 2.6.3

目次

  • gemを導入
  • enumを定義する
  • enumの日本語化
  • enumの紐づけ
  • 確認

gemを導入

まずはgemを導入します。

Gemfile
gem "enum_help"

記述後、enum_help をインストールするために bundle installを行いましょう。

ターミナル
$ bundle install

enumを定義する

gem導入後、実際にenumを定義し、数値と文字列を紐付けします。
今回は数値と文字列を紐づける流れを、支払い方法のクレジットカード・銀行振込を例に解説します。

モデルはOrderモデルで定義します。

Order.rb
enum payment_method: { credit_card: 0, transfer: 1 }

enumの日本語化

先ほど定義したenumを日本語化します。

config/application.rb
config.i18n.default_locale = :ja
  config.i18n.load_path += Dir[Rails.root.join('config/locales/*.yml').to_s]

この記述により、Rails アプリケーションのデフォルトの言語が日本語となります。
ただこれだけでは定義したenumを日本語化することはできず、
定義したenumと日本語を紐づける作業が必要になります。

enumの紐づけ

それでは、定義したenumと日本語を紐づけます。
config/localesフォルダにja.ymlというファイルに次のように記述します。

book.rb
 ja:
    enums:
      order:
        payment_method:
          credit_card: "クレジットカード"
          transfer: "銀行振込"

確認

最後に、定義したものが日本語で呼び出せるかを確認していきます。

ターミナル
$ rails c 
$ Order.payment_methods_i18n[:credit_card] #credit_cardのenumを呼びだす
$ Order.payment_methods_i18n[:transfer] #transferのenumを呼びだす

呼び出すと、下記のようになるかと思います。
日本語に変換できていますね!

enum_call_i18n-1.png

これで完成です!お疲れ様でした!
あくまで備忘録なので足りない説明等多々あるかと思います。
行き詰まった際の助けになれば幸いです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?