Ruby on Rails Ⅲ 2章 scaffoldのコードに近付けよう(1)〜フォームに初期値を入れよう - エラーメッセージを表示しよう
20170301@home Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]
目次
フォームに初期値を入れよう
前にやった気もするけれども、今回は「バリデーションチェックを通らなかったときに、さっき入力していた値をフォームに入れておこう」という趣旨。
saveに失敗した時の初期値
createアクションで@noteに値がセットされているので、@note.title
で初期値を表示できる。
newアクションを経由した場合の初期値
newアクションで中身が空の@noteを定義する
・・・演習がコピペで終わった
エラーメッセージを表示しよう
何がダメでやり直しさせられてるのか、ユーザにお知らせしたい。
バリデーション失敗時、エラーメッセージは同時に作られる。(!)
内容は
@note.errors.full_messages
に入っている。
取得の仕方
<% @note.errors.full_messages.each do |message | %> <%= message %>
こんな感じ。
full_messages
以外のメソッドはどんなのがあるの?という疑問が出て少し調べたのでメモ。
参考:Active Record バリデーション | Rails ガイド
「エラーが一つでもあれば表示する」の書き方
<% if @note.errors.any? %> <% end %>
エラーメッセージを出すと、「なんかそれっぽいものが出来てきた」という気になれるので良い感じ。 見た目もbootstrapで綺麗だし。
今回の勉強時間:16分 累計勉強時間:8時間52分