このチャプターではバリデーション(検証)機能について勉強します。
例えば、blogの投稿時にタイトルなしのまま投稿してしまった時に「タイトルが空白ですよ」とエラーがでたり、 お問合せフォームであれば必須項目が未入力のまま送信すると「Emailアドレス(必須項目)が空白ですよ」とエラーをだしてくれるような機能です。 データベースにデータを登録する前に、データが正常であるかどうかを検証してくれる機能がバリデーションです。
新しく記事を投稿する際、タイトルが空白の場合はエラーになるように設定してみましょう。
バリデーションを追加するのはモデルファイルです。modelsフォルダのarticle.rbファイルを開いてください。
バリデーションを追加する前に、articlesコントローラを開いてください。
冒頭でバリデーションとはデータベースにデータを登録する前に、データが正常であるかどうかを検証してくれる機能だと解説しました。
コントローラを確認すると、newアクションの中身は空です。
バリデーションはデータの検証機能なのでこのままではバリデーションをつかうことができません。
そこで、newアクションに以下のコードを追加します。
def new
@article = Article.new
end
この
@article = Article.new
は教程4モデルにデータを保存するで登場したコードです。
@artile という箱にArticle.newで空っぽのデータを代入しているということです。
データの準備ができたところでarticleモデルに以下のコードを追加してください。
validates :title, presence: true
presenceとは存在するという意味です。これは :titleがpresence(存在する)がtrueかどうか検証しなさいというコードです。
バリデーションが機能するかどうか確認しましょう。 記事を投稿するフォームのタイトルを空白にして送信してみます。
すると記事一覧画面に遷移しました。 ブラウザを更新しても、タイトルなしの先ほど投稿したはずの記事はありません。 バリデーションの機能によってデータの保存は阻止されているようです。
無料ビデオ講座のお知らせ
Skillhub [スキルハブ]では無料の動画講座を多数公開しています。他校だと数万円するような講座が無料で受講できます。