概要
exclusion
詳細
ActiveRecordで、validation時にexclusionを利用することで、
除外すべき値を設定することができます。
サンプル
テーブル定義
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 }, exclusion: [{ in: %w(reserved1 reserved2), message: "%{value} is reserved." }] end
試行
rails console(pry)で試行します。
[1] pry(main)> a = Article.new => #<Article id: nil, title: nil, text: nil, created_at: nil, updated_at: nil> [2] pry(main)> a.title = 'reserved1' => "reserved1" [3] pry(main)> a.valid? => false [4] pry(main)> a.errors.messages => {:title=>["reserved1 is reserved."]} [5] pry(main)> a.title = 'reserved3' => "reserved3" [6] pry(main)> a.valid? => true