🍣
enum
はじめに
終盤に差し掛かったところで久しぶりにenumを使用したのでまとめたいと思います。
enumって?
語源は enumeration(列挙)で、
名前を整数の定数に割り当てるために使われるデータ型の一つ。
※migration fileに記述するときのデータ型は、integer型で、
defaultの設定を必ずしましょう。
enumを日本語化させ実装するには: i18nとYAMLfile
enumで定義された属性の値を、日本語で表示するためには、少し設定が必要。
ActiveRecord::Enum の仕組みで簡単に実装自体はできるのだが、
直接数値と日本語を紐づけると、一部使えなくなるメソッドが存在する。
=> i18nを使用する。
-
i18n(internationalization)とは
多言語対応を可能にするためのライブラリ。
アプリケーション内のテキストやメッセージを翻訳可能な形式で記述し、
翻訳用のデータベースを管理することにより実現している。
= YAML(ヤムル)ファイルの記述を行うよ! -
YAML(ヤムル)ファイルとは
テキストファイルの一種で、人間が読みやすく、コンピュータが処理しやすいデータの構造化フォーマット。
主に設定ファイルやデータファイルとして使用される。
今回はi18nライブラリを使用していくため、各言語の翻訳データをYAML形式で記述していく。
実装方法
Gemfile
gem "enum_help"
bundle install
を忘れずに
order.rb
enum payment_method: { credit_card: 0, transfer: 1 }
ここの段階では、英語表記です。(日本語では書きません。)
- 日本語対応
config/application.rb
config.i18n.default_locale = :ja
- ymlファイルを作成
日本語対応にするため、今回は, config/locales フォルダに ja.yml というファイルを作成するよ
基本型
ja: # 日本語の設定
enums: # enumの設定
[モデル名]:
[カラム名]:
[enumで番号と紐付けた要素]
[enumで番号と紐付けた要素]:# 要素の数だけ追加
Discussion