3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

フォームの入力で、バリデーションで失敗した際に、エラーメッセージを表示させると思います。
その場合、デフォルトだと英語になります。

日本語で表示させるためには、設定が必要なのと、メッセージも自由に記載することができます。
今回はその内容をアウトプットいたします。

設定

config/application.rbに、以下を記載いたします。

config / application.rb
config.i18n.default_locale = :ja

続いて、config/locales/ja.ymlに記載いたします。

config / locales / ja.yml
ja:
  activerecord:
    attributes:
      hoge_model:
        fuga_column: 'fugaカラム'
    errors:
      models:
        hoge_model:
          blank: '%{attribute}は必須項目です'
          attributes:
            fuga_column:
              taken: '重複しています'
              invalid: '不正です'

activerecord:に続く、attributes:配下に、モデルとカラム名を記載します。
そうすると、記載の通りのカラム名が返ってくるようになります。

これで、モデルのカラム名を日本語化することができるようになりました。

また、errors:に続くよう、モデルとエラー内容を記載すれば、そのバリデーションエラーになった際、記載のメッセージが表示されるようになります。

  • blank: presence: true
  • taken: uniqueness: true
  • invalid: format: { with:...

上記のようなバリデーションがあった際に、ja.ymlで設定していると、該当のメッセージを返してくれます。
ここで、設定したいオリジナルを設定しましょう。

バリデーションのメッセージは、モデル自体にも設定できますし、カラムごとに設定することもできます。

まとめ

ja.ymlは、かなり汎用性が高いです。
ここでアプリケーションに沿った内容を設定して、適切なメッセージを表示するようにしましょう。

最後までご覧いただき、ありがとうございました。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?