エラーメッセージ
<% if teacher.errors.any? %> <div id="error_explanation"> <h2><%= pluralize(teacher.errors.count, "error") %> prohibited this teacher from being saved:</h2> <ul> <% teacher.errors.full_messages.each do |message| %> <li><%= message %></li> <% end %> </ul> </div> <% end %>
上記はエラーメッセージを表示するための記述。scaffold では_formファイルの form_with下に生成される。モデルの処理でエラーがあるとerrors オブジェクトが作られる。エラーがあった場合はif teacher.errors.any?以下が実行される。
pluralize(teacher.errors.count, "error")
pluralizeは単数形を複数形に変換するためのメソッド。第一引数の数値を第二引数を単位として表現する。エラーの数が1なら1 error で2なら 2 errors となる
<% teacher.errors.full_messages.each do |message| %> <li><%= message %></li> <% end %>
validationにかかった場合、インスタンス.errors.full_messages のなかに配列でエラーメッセージが入る。順に取り出して表示しなんで保存に失敗したかをユーザが確認できるようにしている。