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

More than 3 years have passed since last update.

【Rails】バリデーションエラーメッセージを日本語にする

Posted at

記事の内容

deviseを使ったユーザー管理機能のテストコードを書く中で、バリデーションのエラーメッセージを日本語にする方法を学んだので、備忘録として記録します。

環境

OS: macOS Catalina 10.15.6
Ruby: 2.6.5
Rails: 6.0.3.4

手順

①config/application.rbを編集
②gem 'rails-i18n' を導入
③config/localesに日本語用のYAMLを作成

①config/application.rbを編集

以下のように編集。

module アプリケーション名
  class Application < Rails::Application
    # Initialize configuration defaults for originally generated Rails version.
    config.load_defaults 6.0
    config.i18n.default_locale = :ja # 言語の設定を日本語にする記述
    # (省略)
  end
end

②gem 'rails-i18n' を導入

  • Gemfileに以下を記述
gem 'rails-i18n'
  • ターミナルでbundle installを実行

③config/localesに日本語用のYAMLを作成

####deviseのデフォルトバリデーションの場合####

####任意に追加したカラムの場合####

  • config/localesにja.ymlを作成
  • 以下のような形でモデルとカラムの数に応じてファイルを編集
    (インデントがズレるとうまく動かないようです。)
ja:
 activerecord:
   attributes:
     モデル名:
       カラム名: 表示させたい日本語訳
     モデル名:
       カラム名: 表示させたい日本語訳
       カラム名: 表示させたい日本語訳

補足

devise.ja.ymlの内容についても、日本語訳の部分を適宜修正するとメッセージの表示がきれいになると思います。
また、モデル名.rb内でpresence:のバリデーションを設定しているものについても、画像などの場合デフォルトのエラーメッセージと相性が悪いこともあるため、以下のようにメッセージを任意で設定しても良いと思います。

  validates :image, presence: { message: 'を選択してください' }
  # 'true'は入れない!

引き続き学習がんばります!

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