123456789_123456789_123456789_123456789_123456789_

Module: Mongoid::Validatable::ClassMethods

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Extended In:
Defined in: lib/mongoid/validatable.rb

Instance Attribute Summary

Instance Method Summary

Instance Attribute Details

#validating_with_query?true | false (readonly)

Are we currently performing a validation that has a query?

Examples:

Are we validating with a query?

Model.validating_with_query?

Returns:

  • (true | false)

    If we are validating with a query.

[ GitHub ]

  
# File 'lib/mongoid/validatable.rb', line 167

def validating_with_query?
  Threaded.executing?("#{name}-validate-with-query")
end

Instance Method Details

#validates_relation(association)

Adds an associated validator for the association if the validate option was not provided or set to true.

Examples:

::Set up validation.

Person.validates_relation(association)

Parameters:

[ GitHub ]

  
# File 'lib/mongoid/validatable.rb', line 131

def validates_relation(association)
  if association.validate?
    validates_associated(association.name)
  end
end

#validates_with(*args, &block)

Note:

See ActiveModel::Validations::With for full options. This is overridden to add autosave functionality when presence validation is added.

Add validation with the supplied validators for the provided fields with options.

Examples:

Validate with a specific validator.

validates_with MyValidator, on: :create

Parameters:

  • *args (ActiveModel::Validator..., Hash)

    The validator classes and options hash.

[ GitHub ]

  
# File 'lib/mongoid/validatable.rb', line 149

def validates_with(*args, &block)
  if args.first == PresenceValidator
    args.last[:attributes].each do |name|
      association = relations[name.to_s]
      if association && association.autosave?
        Association::Referenced::AutoSave.define_autosave!(association)
      end
    end
  end
  super
end