- English
- 日本語
Ruby on Railsを知っている人
Ruby on RailsでWebアプリを構築する時、フォームでデータ送信を行う機能を実装することがあるかと思います。
もし、送信内容をチェックせずにフォームで誤ったデータを送信してしまうとまずいですよね?
例えば、入力しなければいけない項目を記述していない、数字を記述する項目を文字で記述するなどです。
他にも色々なケースが考えられるかと思います。
Ruby on Railsでは入力された値をチェックするバリデーション(validation)という仕組みがあります。
そこでこの記事ではバリデーション(validation)とは何か、バリデーション(validation)の種類、バリデーション(validation)の使い方を見ていきたいと思います。
気になる方は是非最後まで読んでいただければと思います。
\単月定額と比べて総額最大48,000円OFF!/
学び応援キャンペーン実施中!
【超安心】1か月間全額返金保証付き
以下のプログラミングスクールもオススメです。
是非検討してみてはいかがでしょうか?
- 侍テラコヤ(初月50%OFF学び応援キャンペーン実施中)(解説記事はこちら)
⇒ 学び応援キャンペーンでお得に申し込む!
・コスパ最高! 月額2,980円〜利用できる!
・単月定額と比べて総額最大44,400円OFF!
・学び応援キャンペーン実施中!
- 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を知っている人
プログラミングスクール
以下のプログラミングスクールもオススメです。
是非検討してみてはいかがでしょうか?
- 侍テラコヤ(初月50%OFF学び応援キャンペーン実施中)(解説記事はこちら)
⇒ 学び応援キャンペーンでお得に申し込む!
・コスパ最高! 月額2,980円〜利用できる!
・単月定額と比べて総額最大44,400円OFF!
・学び応援キャンペーン実施中!
- TechAcademy
⇒ 無料体験レッスンに申し込む!
・Ruby/Ruby on Railsだけでなく、Git/GitHub、HTML/CSS、Bootstrap、SQL、Heroku、Web API、Vue.jsなど幅広く学ぶことができる
・今まで得た知識をアウトプットするために自分の作りたいWebサービスを作る
・無料体験レッスン実施中!
Ruby on Railsを知っている人
まとめ
Ruby on Railsを知っている人
最後まで読んで頂きまして、ありがとうございました。
途中で分からないことがあり、中々進まないこともあると思います。
しかし、順を追って学習を進めていけば、必ずできるようになるのであきらめず最後までやりぬきましょう!