※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。
エラー内容を表示する
↓ の記事の内容に沿って進めていく
app/views/articles/new.html.erbに以下のコードを書く
<ul>
<% @article.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
railsではエラーメッセージがすでに用意されている
.errors.full_messages
で、すべてエラーメッセージを取得する
.each do |message|
で、エラー状況に適したメッセージが抜き出される
設定された、Validationの種類によって判定される
←タイトル(:title)、内容(:content)ともにブランクのまま
「保存」を押すと、エラーメッセージが表示される→
※今回はエラーがリスト表示されるようにしている
「存在しないと保存しません」というルールのもと、「ブランクはだめだよ」というエラー表示がされている
config/application.rbのclass Application < Rails::Application
内に以下のコードを書く
class Application < Rails::Application
# Initialize configuration defaults for originally generated Rails version.
config.load_defaults 6.0
# 中略
config.i18n.default_locale = :ja
end
config.i18n.default_locale = :ja
→ 日本語をデフォルト表示させる、という意味
application.rbは、サーバーを起動したタイミングでしか読み込まないファイル
- warpのサーバーを一度、control+cで抜ける
rails s
で再度サーバーを立ち上げる- このとき、application.rbが読み込まれる(変更が反映される)
config/locales/en.ymlには英語の表記について表記がされている
config/locales/ja.ymlを新たに作成する
railsが日本語表記したいときのコードを用意してくれているので、それを貼り付ける
追記が必要なケース
↓ デイトラの先生が用意したコード
一部のコードが書き足されている
ja:
activerecord:
errors:
messages:
record_invalid: 'バリデーションに失敗しました: %{errors}'
restrict_dependent_destroy:
has_one: "%{record}が存在しているので削除できません"
has_many: "%{record}が存在しているので削除できません"
attributes:
article:
title: 'タイトル'
content: '内容'
validationに関するメッセージ、errorメッセージは特定のメッセージが決まっている
→ raile内で日本語に置き換えられるように表記してくれている
ただし、自分でカラムを決めた場合(titile:やcontent:)は、日本語表記を自分で追記しないといけない
ja:
activerecord:
# 中略
attributes:
article:
title: 'タイトル'
content: '内容'
エラーで接続が切れたら、warp画面にて「$ rails s」を実行
サーバーを立ち上げ直す
英語だったエラーが、日本語表示された!
#DAY12
【rails】表記の変更(yml)まとめ