【今すぐ無料で試す】ゼロから始める定額・学び放題のプログラミング学習サービス「侍テラコヤ」

【Rails入門】バリデーションとは?種類・使い方を分かりやすく解説!

Ruby on Railsを知っている人

Ruby on RailsでWebアプリを構築する時、フォームでデータ送信を行う機能を実装することがあるかと思います。

 

もし、送信内容をチェックせずにフォームで誤ったデータを送信してしまうとまずいですよね?

 

例えば、入力しなければいけない項目を記述していない、数字を記述する項目を文字で記述するなどです。

 

他にも色々なケースが考えられるかと思います。

 

Ruby on Railsでは入力された値をチェックするバリデーション(validation)という仕組みがあります。

 

そこでこの記事ではバリデーション(validation)とは何か、バリデーション(validation)の種類、バリデーション(validation)の使い方を見ていきたいと思います。

 

気になる方は是非最後まで読んでいただければと思います。

 

\単月定額と比べて総額最大48,000円OFF!/
学び応援キャンペーン実施中!
【超安心】1か月間全額返金保証付き

最短30秒で登録完了! 今すぐ侍テラコヤに入学してRuby on Railsを学ぶ!

 

 

以下のプログラミングスクールもオススメです。

 

是非検討してみてはいかがでしょうか?

 

  1. 侍テラコヤ初月50%OFF学び応援キャンペーン実施中)(解説記事はこちら
    学び応援キャンペーンでお得に申し込む!
    ・コスパ最高! 月額2,980円〜利用できる!
    ・単月定額と比べて総額最大44,400円OFF!

    ・学び応援キャンペーン実施中!
  2. TechAcademy
    無料体験レッスンに申し込む!
    ・Ruby/Ruby on Railsだけでなく、Git/GitHub、HTML/CSS、Bootstrap、SQL、Heroku、Web API、Vue.jsなど幅広く学ぶことができる

    ・今まで得た知識をアウトプットするために自分の作りたいWebサービスを作る
    無料体験レッスン実施中!

 

Ruby on Railsを知っている人

 

バリデーションとは?

 

Ruby on Railsを知っている人

まず始めにバリデーション(validation)とは何かという所から見ていきましょう。

 

バリデーションとはデータを保存しようとする時に、値が正しく入力されているかチェックするための仕組みです。

 

バリデーションを使用することでデータベースにデータを保存する時、不適切な値があればデータを保存させないようにできます。

 

このようなチェックのおかげで見当違いなデータをデータベースに保存させるということを防ぐことができます。

 




 

バリエーションの種類

 

Ruby on Railsを知っている人

それでは次にバリデーションの種類を見ていきましょう。

 

一度で全部覚えることは難しいので、ここでは「こんなものがあるのか」とさらっと見て頂ければと思います。

 

それでは見ていきましょう。

 

presence

 

「presence」はデータ保存を必須にするためのバリデーションです。

 

以下のようにtrueと設定するだけでデータ保存を必須にすることができます。

 

 

presence: true

 

 

uniqueness

 

「uniqueness」はデータの値がユニークであるかチェックするためのバリデーションです。

 

以下のようにtrueと設定するだけでデータの値がユニークであるかチェックすることができます。

 

 

uniqueness: true

 

 

numericality

 

「numericality」はデータの値が数字であるかチェックするためのバリデーションです。

 

数字であるかのみチェックしたい時は以下のように設定します。

 

 

numericality: true

 

 

他にもハッシュを使用することで細かな設定を行うことができます。

 

以下のようなものを使用することでオプション設定を行うことができます。

 

only_integer 整数のみかをチェックする
greater_than 指定した値より大きいかをチェックする
greater_than_or_equal_to 指定した値以上かをチェックする
less_than 指定した値未満かをチェックする
less_than_or_equal_to 指定した値以下かをチェックする
equal_to 指定した値と等しいかをチェックする
even 偶数かをチェックする
odd 奇数かをチェックする

 

例えば、整数のみかをチェックしたい時は以下のように設定します。

 

 

numericality: { only_integer: true }

 

 

length

 

「length」は文字の長さをチェックするためのバリデーションです。

 

「length」も「numericality」と同様にハッシュを使用することで細かな設定を行うことができます。

 

以下のようなものを使用することでオプション設定を行うことができます。

 

maximum 最大文字数
minimum 最小文字数
is 指定文字数
within 文字数の範囲

 

lengthの使い方は基本的にnumericalityと同じです。

 

例えば、最大文字数10と指定したい場合は以下のように設定します。

 

 

length: { maximum: 10 }

 

 

他にも様々なバリデーションが存在していますが、ここではよく使用するものを紹介させて頂きました。

 




 

バリデーションの使い方

 

Ruby on Railsを知っている人

バリデーションを実際に使用して値のチェックを行っていきましょう。

 

バリエーションはモデルファイルに設定していきます。

 

※ここではtitle(string型)とcontent(text型)を持つpostモデルを作成しているという前提でお話を進めていきます。

 

 

上記のようにtitleとcontentともに「presence: true」で入力必須項目としました。

 

ここではバリデーションは1つのみですが、必要に応じて様々なバリデーションを組み込むことができます。

 

バリデーションを設定することができたので、実際に動くか見ていきましょう。

 

titleとcontentともに空欄でデータ保存を試みてみましょう。

 

 

上記のようにデータ保存がされずにエラー画面が出ました。

 

しっかりとバリエーションが設定されているみたいです。

 




 

Ruby on Railsを学ぶことができるオススメの教材

 

Ruby on Railsを知っている人

Ruby on Railsを学習している皆様にオススメの教材をご紹介させていただきます。

 

現場で使える Ruby on Rails 5速習実践ガイド

 

現場で使える Ruby on Rails 5速習実践ガイド」は現場で実際にどのように使われているのかという視点も交えて解説されています。

 

そのため、初心者の方が次のステップに進むために最適な本となっていますので、オススメです。

 

これらの本で是非学習を進めてみてはいかがでしょうか?

Ruby on Railsを知っている人

 

プログラミングスクール

 

以下のプログラミングスクールもオススメです。

 

是非検討してみてはいかがでしょうか?

 

  1. 侍テラコヤ初月50%OFF学び応援キャンペーン実施中)(解説記事はこちら
    学び応援キャンペーンでお得に申し込む!
    ・コスパ最高! 月額2,980円〜利用できる!
    ・単月定額と比べて総額最大44,400円OFF!

    ・学び応援キャンペーン実施中!
  2. TechAcademy
    無料体験レッスンに申し込む!
    ・Ruby/Ruby on Railsだけでなく、Git/GitHub、HTML/CSS、Bootstrap、SQL、Heroku、Web API、Vue.jsなど幅広く学ぶことができる

    ・今まで得た知識をアウトプットするために自分の作りたいWebサービスを作る
    無料体験レッスン実施中!

 

Ruby on Railsを知っている人

 




 

まとめ

 

Ruby on Railsを知っている人

最後まで読んで頂きまして、ありがとうございました。

 

途中で分からないことがあり、中々進まないこともあると思います。

 

しかし、順を追って学習を進めていけば、必ずできるようになるのであきらめず最後までやりぬきましょう!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です