0
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?

個人的メモ rails エラーメッセージの表示が英語だった時にi18nファイルを弄って日本語化する方法

Last updated at Posted at 2019-08-08

エラーメッセージが英文でそのまま「モデル名+エラー内容」で出力されてしまい、ユーザーにわかりやすいように日本語化する方法を教えていただき、公式ガイドを見つつ実装したので忘備録的にメモ。

i18n公式ガイド : https://railsguides.jp/i18n.html

元々のエラーメッセージ表示内容

transration missing ja.activereccord.errors.models.モデル名.カラム名

対処方法

i18nの設定が書かれたファイルがconfig/local/ja.ymlにあるので、ここのそのエラー内容に対応した場所に日本語表示を定義する。
例えば

 activerecord.errors.models.model_name.model_culumn_name

というエラー表示であれば、

 activerecord:
    errors:
      models:
        model_name:
          culumn_name: 「ここに新しく定義するメッセージを書く」

また、しっかり階層構造下に書かなくとも、

「activereccord-errors-messages直下に定義してもja.ymlさんはモデルカラム名」

に定義すると、モデル全体にエラーメッセージを適応してくれるため、その必要がある時はここに書いてもよいです。

以下は例です

  activerecord:
    errors:
      messages:
        culumn_name: 「ここに新しく定義するメッセージを書く」

※公式ガイド4.5.1 エラーメッセージのスコープ より
https://railsguides.jp/i18n.html#%E3%82%A8%E3%83%A9%E3%83%BC%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%81%AE%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97

公式ガイドによると、ymlファイルに書かれているメッセージ内容を以下の順番で探してくれるみたいです。

| activerecord.errors.models.[model_name].attributes.[attribute_name] |
| activerecord.errors.models.[model_name] |
| activerecord.errors.messages |
| errors.attributes.[attribute_name] |
| errors.messages |
0
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
0
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?