Tbpgr Blog

元エンジニア 人事 tbpgr(てぃーびー) のブログ

Ruby on Rails | Validation | valid? invlid?

概要

valid? invlid?

詳細

ActiveRecordで、validation設定時に

valid? => 現状の設定値が正しいかどうか真偽値で返却(正しい場合に true)
invalid? => 現状の設定値が誤っているかどうか真偽値で返却(誤っている場合にtrue)

サンプル

テーブル定義
CREATE TABLE "articles" (
  "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, 
  "title" varchar(255), 
  "text" text, 
  "created_at" datetime, 
  "updated_at" datetime
);
Validation
class Article < ActiveRecord::Base
  validates :title, presence: true, length: { minimum: 5 }
end
試行

rails console(pry)で試行します。

[32] pry(main)> a = Article.new
=> #<Article id: nil, title: nil, text: nil, created_at: nil, updated_at: nil>
[33] pry(main)> a.valid?
=> false
[34] pry(main)> a.invalid?
=> true
[40] pry(main)> a.title = "valid title"
=> "valid title"
[41] pry(main)> a.valid?
=> true
[42] pry(main)> a.invalid?
=> false