Railsでmodelに指定したバリデーションを日本語としてエラーを表示したいと思います。
自分の環境
現状
エラーメッセージが英語で記載されています。
対応内容
- 以下のgemをインストール
gem 'rails-i18n'
- application.rbに記述追加
class Application < Rails::Application ...(略) config.i18n.default_locale = :ja end
※
- config/locales/models/ja.ymlにフィールド名を日本語で記載する。
ja: activerecord: models: user: ユーザー attributes: user: name: ユーザー名 password: パスワード password_confirmation: パスワード(再確認)
※モデル名はキャメルケースではなくスネークケースで単数形で記載する。
- viewのlabel名を日本語ベタ書きにしていた場合、フィールド名にする。
<%= f.label ”名前” %>ではなく<%= f.label :field_name %>とする。
<%= form_for(@user, url: yield(:url)) do |f| %> <%= render 'shared/error_messages', object: f.object %> <%= f.label :name %> <%= f.text_field :name, class: "form-control" %> <%= f.label "パスワード" %> <%= f.label :password %> <%= f.password_field :password, class: "form-control" %> <%= f.label "パスワード(再確認)" %> <%= f.label :password_confirmation %> <%= f.password_field :password_confirmation, class: "form-control" %> <%= f.submit yield(:button_text), class: "btn btn-primary" %> <% end %>
結果
参考にさせていただいたサイト
https://rails-study.net/to-ja/