91s

プログラミング関係、日記などを書きます

Rails enumではないカラムで値のパターンがある場合の日本語化

記事を書いた動機

Railsの日本語化で、元カラムがintegerでenumを使っている場合の日本語化はenum_helpというgemを使えば簡単なのですが、

そうではないパターンで、元カラムがstringで、enumも使っていない場合の日本語化はどうすればいいのか少し悩んだ為

(activeadmin使用中に悩んだので、activeadminでの使用例も載せています)

問題と解決法

やりたかったこと

  • Documentテーブルのstatusというカラム(仮)が、stringで管理されているが日本語化対応したい
    • 入る文字のパターンは決まっているが、諸事情でenumによる管理はできない

解決法

  • ja.yml
ja:
  document:
    status:
      approved: 承認
      denied: 否認
      checking: 確認中
  • 表示部分
# statusにはstatusの実際の値が入ります
I18n.t("document.status.#{status}")

activeadminで使った例

  • index画面
column :status do |document|
  I18n.t("document.status.#{document.status}")
end