LoginSignup
1
1

More than 3 years have passed since last update.

【Rails】モデルの属性名を日本語化する

Last updated at Posted at 2021-01-14

Rails のエラーメッセージを日本語化した際、モデルの属性名だけ英語のアルファベット表記になってしまう。。。という状況に陥ったので、解決するまでの道のりを記録しておきます。

①辞書によるデフォルトメッセージを日本語に

スクリーンショット 2021-01-14 16.46.27.png
config/initializers/配下に新しいファイルを作成(とりあえず locale.rb というファイル名にします)。下記のように記述。

config/initializers/locale.rb
I18n.config.available_locales = :ja
I18n.default_locale = :ja

②日本語の辞書ファイルを作成

config/locales/にja.ymlというファイルを作成。中に記述する内容を自分で書いてもいいのですが、すでに作成されたものがあるので、こちらをコピーするなりダウンロードするなりして保存します。

これで Rails サーバーを再起動。エラーが出るように、新規作成画面(空欄で登録しようとするとエラーになるバリデーションを設定済み)でわざと空欄のまま登録ボタンを押すと・・・
スクリーンショット 2021-01-14 16.06.48.png
確かに日本語になりましたが・・・Task name, Detail, Deadline がアルファベット表記のままです。

タイトルにも書きましたが、これらはデフォルトの日本語表記というわけではなく、自分が命名したモデルの属性名なので別扱いなのです。これらを日本語にするためには別のファイルを準備しなければなりません。

③モデル属性を日本語に

今度は config/locales/ に モデルを日本語表にする辞書 "model.ja.yml" を作成。

config/locales/model.ja.yml
ja:
  activerecord:
    models:
      task: ブログ
      user: ユーザー
    attributes:
      task:
        task_name: タスク名
        detail: 詳細
        deadline: 期限
      user:
        title: タイトル
        name: 名前
        email: メールアドレス
        current_password: 現在のパスワード
        password: パスワード
        password_confirmation: 確認用パスワード
        remember_me: ログインを記憶

このようにモデル属性に対応する日本語を記述します。これでサーバーを立ち上げなおして、先ほどと同じやり方でエラーを出してみると・・・
スクリーンショット 2021-01-14 16.36.41.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