Sometimes you need to apply a if or unless condition to many validations at once. Well heres how to do it in Rails


class Post < ActiveRecord::Base
  with_options if: :is_admin? do |admin|
    admin.validates :password, length: { minimum: 28 }
    admin.validates :authorization_number, presence: true
  end
end

The same rules apply to the if as with other validations, therefore it can be used in one of three ways


if: :is_admin?
if: "is_admin?"
if: Proc.new {|x| x.is_admin?}