Class: ActiveRecord::Validations::PresenceValidator

Inherits:
ActiveModel::Validations::PresenceValidator show all
Defined in:
activerecord/lib/active_record/validations/presence.rb

Overview

:nodoc:

Instance Attribute Summary

Attributes inherited from ActiveModel::EachValidator

#attributes

Attributes inherited from ActiveModel::Validator

#options

Instance Method Summary collapse

Methods inherited from ActiveModel::Validations::PresenceValidator

#validate_each

Methods inherited from ActiveModel::EachValidator

#check_validity!, #initialize, #validate_each

Methods inherited from ActiveModel::Validator

#initialize, kind, #kind

Constructor Details

This class inherits a constructor from ActiveModel::EachValidator

Instance Method Details

#validate(record) ⇒ Object


4
5
6
7
8
9
10
11
12
13
14
15
# File 'activerecord/lib/active_record/validations/presence.rb', line 4

def validate(record)
  super
  attributes.each do |attribute|
    next unless record.class.reflect_on_association(attribute)
    associated_records = Array(record.send(attribute))

    # Superclass validates presence. Ensure present records aren't about to be destroyed.
    if associated_records.present? && associated_records.all? { |r| r.marked_for_destruction? }
      record.errors.add(attribute, :blank, options)
    end
  end
end