見出し画像

知識ゼロからの 『とほほのRuby on Rails入門』 #13

これはプログラミング初心者がRuby on Railsの勉強をしていく記録です。

◇ この記事で勉強しているサイト

◇ 前回までの記事一覧


機能追加

バリデーションを追加する

バリデーションとはブラウザ画面で利用者が入力したものを検証する機能で、例えば「入力必須」や「何文字までしか入力できません」などの制約を設ける事が出来るようです。


追記するファイルはmodelsのbook.rbのようです。

最初の状態
追記した後

validates : の後にバリデーションを追加する対象を書いていますね(ここではtitleやauthor)。

presence: true は「入力欄が空で無いこと」、length: { maximum: 20 } は「文字数は20以下」を指定しているようです。


次は_form.html.erbに追記します。

赤線の部分。

errors.full_messages_for(:symbol)メソッドというものがあるようです。

指定した属性のエラーメッセージを配列で取得するコマンドとのこと。

「@bookに入力された値(ブラウザ画面で入力したtitleやauthor)がmodelsで指定したバリデーションに引っかかった場合、指定したエラー(今の場合文字が入っているかと長さ)のエラーメッセージをそれぞれ取得して表示する」ということですよね。

でもこのエラーメッセージをどこから取得するんでしょうか。
その事に触れた記事は見つけられませんでした。

たぶんRailsによって作られたファイルのどこかに記述があるんだろうなと思って、自力で探してみました。
.rbのファイルは全部開けてみたんですが、それらしい記述は見つかりませんでした。
どこにあるんだろう。

手詰まりなのでブラウザ画面を確認してみます。

20文字以上を入力し、Create Bookをクリック
おお!エラーメッセージが出ました!


なんだかスッキリしませんが、また分かり次第書きたいと思います。

短いですが、きりがいいので今回はここまで。
次はブック管理アプリに ”コメント機能” を追加するようです。
あと少し!


この記事が気に入ったらサポートをしてみませんか?