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

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

このチャプターではバリデーション(検証)機能について勉強します。

吉田先生

例えば、blogの投稿時にタイトルなしのまま投稿してしまった時に「タイトルが空白ですよ」とエラーがでたり、 お問合せフォームであれば必須項目が未入力のまま送信すると「Emailアドレス(必須項目)が空白ですよ」とエラーをだしてくれるような機能です。 データベースにデータを登録する前に、データが正常であるかどうかを検証してくれる機能がバリデーションです。


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

1.タイトルが空白の場合はエラーを表示する

新しく記事を投稿する際、タイトルが空白の場合はエラーになるように設定してみましょう。

バリデーションを追加するのはモデルファイルです。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 [スキルハブ]では無料の動画講座を多数公開しています。他校だと数万円するような講座が無料で受講できます。

無料講座一覧を見る

×