fv17の日記 - Coding Every Day

Webエンジニアの備忘用ブログです。主にWeb界隈の技術に関して書いています。

Rails - modelのvalidatation

参考
Active Record の基礎 | Rails ガイド
Active Record バリデーション | Rails ガイド

presence / 存在性

validates :email, presence: true

length / 長さ

validates :name, length: { minimum: 5 }
validates :email, length: { maximum: 255 }
validates :password, length: { in: 6..20 }
validates :registration_number, length: { is: 6 }

format / フォーマット

VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i
validates :email, format: { with: VALID_EMAIL_REGEX }

一意性 / uniqueness

validates :email, uniqueness: true

値が指定された集合に含まれているか / inclusion

validates :size, inclusion: { in: %w(small medium large) }

値が指定された集合に含まれて「いない」か / exclusion

validates :subdomain, exclusion: { in: %w(www us ca jp) }

数値であるか / numericality

整数のみ、範囲指定などのオプションあり

validates :points, numericality: true
validates :games_played, numericality: { only_integer: true }