🎉

【Rails】バリデーション種類

2023/11/07に公開

作成時に毎回「なんだっけ?」と調べるのが手間なので、個人的によく使用するバリデーションを載せておこうと思います。今後も更新して増やしていければと思います。

validationとは

例えば投稿機能の場合に、何も入力をしていないのに投稿ができてしまったりすることを防ぐのに使用します。必須入力以外にも文字数や数値範囲などいろいろあるので載せていきます。

使用例(空白)

モデルファイル
class Person < ApplicationRecord
  validates :name, presence: true
end

上記のようにモデル内に記入します。

基本形

先ほどの使用例を参考に基本形は下記のようになります。

モデルファイル
validates :カラム名, 条件

バリデーションは各モデルにてカラムごとに使用できます。

バリデーション種類

  1. 空白でないこと
validates :name, presence: true
  1. 一意性(他と被っていないこと)
validates :name, uniqueness: true
  1. 1文字以上(長さ)
validates :comment,  length: { minimum: 1 }
  1. 50文字以内(長さ)
validates :comment, length: { maximum: 50 }
  1. 1文字以上50文字以内(長さ)
validates :comment, length: { in: 1..50 }
  1. 数値のみ
validates :age, numericality: { only_integer: true }

複数条件の場合

1つのカラムに複数条件を付ける場合は下記のように記載します。

validates :name, presence: true, uniqueness: true, length: { maximum: 10 }

他にもいろいろな種類と条件付きの書き方等もありますが、直面した際にこちらをメモとして更新して行ければと思います。

参考

https://railsguides.jp/active_record_validations.html
https://qiita.com/nakachan1994/items/4279523f7e10e5a9b5b0
https://choippo.com/rails-active-record-validations/

Discussion