10000hの技術メモ

この先生きのこるための勉強内容&時間記録

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分