Class: ActiveRecord::Validations::PresenceValidator

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

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#validate(record) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
# File '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.wrap(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