平凡エンジニアによる平凡ブログ

平凡インフラエンジニアがスキルアップを目指してプログラミングやクラウドやサーバといったインフラのアウトプットをしていきます!

【rails】バリデーションについて

バリデーションとはDBにデータを登録する場合にデータの整合性を
チェックする機能のことです。 例えばデータを空で登録するのを防いだり
文字数を制限したりすることができます。

バリデーションは種類がたくさんあるが、今日アプリ制作を行っている最中で使用したものを記載します。

railsのモデルに以下のように記載します。

class tweet < ApplicationRecord
  validates :content, presence: true #データが空でないこと
end

:contentがテーブルのカラムです。カンマを入れて、その後に記載している「presence: true」が今回 本題のバリデーションです。

「presence: true」はデータが空でないことをチェックする
バリデーションです。
:contentカラムを空で登録しようと すると以下のようなエラー表示になり登録ができません。

Content can't be blank

その他本日学んで使用したバリデーションは以下です。

  validates :content, length: { maximum: 140}
 #文字数が140文字以下でないと登録できない

  validates :content, length: { minimum: 10} 
 #文字数が10文字以上でないと登録できない

  validates :content, length: { in: 1..70} 
 #文字数が1文字以上,75文字以上でないと登録できない

  validates :password, length: {is: 8}
    #8文字でしか登録できない

ちなみに2種類のバリデーションを加えるなら以下のようにカンマで区切れば設定可能です。

validates :content, length: { maximum:140}, presence: true