module ActiveRecord::Validations - activerecord-4.2.4 Documentation

# module ActiveRecord::Validations

# Active Record Validations¶ ↑

Active Record includes the majority of its validations from `ActiveModel::Validations` all of which accept the `:on` argument to define the context where the validations are active. Active Record will always supply either the context of `:create` or `:update` dependent on whether the model is a `new_record?`.

### Public Instance Methods

save(options={}) click to toggle source

The validation process on save can be skipped by passing `validate: false`. The regular #save method is replaced with this when the validations module is mixed in, which it is by default.

Calls superclass method

    # File lib/active_record/validations.rb, line 36
    def save(options={})
      perform_validations(options) ? super : false
    end

save!(options={}) click to toggle source

Attempts to save the record just like #save but will raise a `RecordInvalid` exception instead of returning `false` if the record is not valid.

Calls superclass method

    # File lib/active_record/validations.rb, line 42
    def save!(options={})
      perform_validations(options) ? super : raise_record_invalid
    end

valid?(context = nil) click to toggle source

Runs all the validations within the specified context. Returns `true` if no errors are found, `false` otherwise.

Aliased as validate.

If the argument is `false` (default is `nil`), the context is set to `:create` if `new_record?` is `true`, and to `:update` if it is not.

Validations with no `:on` option will run no matter the context. Validations with some `:on` option will only run in the specified context.

Calls superclass method

    # File lib/active_record/validations.rb, line 56
    def valid?(context = nil)
      context ||= (new_record? ? :create : :update)
      output = super(context)
      errors.empty? && output
    end

Also aliased as: validate
validate(context = nil)
Alias for: valid?
validate!(context = nil) click to toggle source

Runs all the validations within the specified context. Returns `true` if no errors are found, raises `RecordInvalid` otherwise.

If the argument is `false` (default is `nil`), the context is set to `:create` if `new_record?` is `true`, and to `:update` if it is not.

Validations with no `:on` option will run no matter the context. Validations with some `:on` option will only run in the specified context.

    # File lib/active_record/validations.rb, line 72
    def validate!(context = nil)
      valid?(context) || raise_record_invalid
    end

### Protected Instance Methods

raise_record_invalid() click to toggle source

    # File lib/active_record/validations.rb, line 78
    def raise_record_invalid
      raise(RecordInvalid.new(self))
    end