「押さえておきたいWeb知識」で検索お願いします!

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

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

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

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

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

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

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

1.バリデーションとは?

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

バリデーションとは?

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

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

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




2.バリエーションの種類

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

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

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

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 }

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




3.バリデーションの使い方

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

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

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

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

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

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

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

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

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




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

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

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

以下の本はRuby on Railsの学習を一通り終えてある程度知識を身につけた方にオススメしたい本です。

 

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

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

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

レベル別におすすめの本も紹介していますので、どのような本がオススメか知りたい方はこちらもご覧になって下さい。

[2021年最新版] Ruby on Rails を学ぶことができるおすすめの本

Udemy

UdemyではRuby on Railsを学ぶことができる講座を多数取り扱っています。

以下の記事でRuby on Railsを学ぶことができるオススメの講座をまとめていますので、よかったらご覧になって下さい。

[必見!] Udemy(ユーデミー) おすすめのRuby on Rails講座

プログラミングスクール

TechAcademyWebCampCodeCampTech CampなどでRuby on Railsを学ぶことができます。

それぞれ無料体験も行っているので、どのようなものか試してみるのもいいでしょう。

以下の記事で各プログラミングスクールをまとめているのでこちらもよかったらご覧になってください。

プログラミングスクール TechAcademy(テックアカデミー)とは? 特徴・口コミをまとめてみました! プログラミングスクール DMM WebCamp ビジネス教養コースとは? 特徴・口コミをまとめてみました! プログラミングスクール CodeCamp(コードキャンプ)とは? 特徴・料金・口コミをまとめてみました! [感想・体験談アリ!] 実際にTech Camp(テックキャンプ)のプログラミング教養でプログラミングをやってみた! [感想・体験談あり!] Tech Camp(テックキャンプ)のプログラミング教養の学習内容は? 働きながらTECH CAMP(テックキャンプ)で学ぶことはできるのか? 結論:可能です! TECH CAMP(テックキャンプ)ではどのような言語・技術を学ぶことができるの? TECH CAMP(テックキャンプ)の受講料はどのくらい? 安く通う方法もお話します! [体験談・感想あり!]TECH CAMP(テックキャンプ)でどのようなスキルが身につくの?




5.まとめ

今回は簡単なバリデーションを紹介しましたが、ここで得た知識をもとに色々なバリデーション設定に挑戦してみてはいかがでしょうか?

コメントを残す

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