マスターテーブル作るほどではない固定の列挙型を使うことがよくある。
localeに定義しておくと使い勝手が良い気がしたので書いとく。
localeの使い方は全部ココ に書いてあるんですが
1
config.i18n.default_locale = :ja
1
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
1
2
3
4
5
6
7
8
9
10
ja:
enum:
values:
state:
enabled: 1
disabled: 0
labels:
state:
enabled: 有効
disabled: 無効
1
enum satte: I18n.t('enum.values.state'), _prefix: true
デコレータとかにこんなの置いといて使う
1
2
3
def label(column, key)
I18n.t("enum.labels").dig(column.to_sym, key.to_sym)
end
とすると使い回せて諸々ブレなくてレビューもしやすくていいんじゃないかなー?
複数のモデルで同じ内容のenumを個別に定義している実装を見て、どうにかできんかなーと考えてて思った
コメント