validates_confirmation_of(*attr_names) public

Encapsulates the pattern of wanting to validate a password or email address field with a confirmation.

  class Person < ActiveRecord::Base
    validates_confirmation_of :user_name, :password
    validates_confirmation_of :email_address,
                              message: 'should match confirmation'

  <%= password_field "person", "password" %>
  <%= password_field "person", "password_confirmation" %>

The added password_confirmation attribute is virtual; it exists only as an in-memory attribute for validating the password. To achieve this, the validation adds accessors to the model for the confirmation attribute.

NOTE: This check is performed only if password_confirmation is not nil. To require confirmation, make sure to add a presence check for the confirmation attribute:

validates_presence_of :password_confirmation, if: :password_changed?

Configuration options:

  • :message - A custom error message (default is: “doesn’t match %{translated_attribute_name}").

  • :case_sensitive - Looks for an exact match. Ignored by non-text columns (true by default).

There is also a list of default options supported by every validator: :if, :unless, :on, :allow_nil, :allow_blank, and :strict. See ActiveModel::Validations#validates for more information

Show source
Register or log in to add new notes.