Module: Mongoid::Validatable
Relationships & Source Files | |
Namespace Children | |
Modules:
| |
Classes:
| |
Extension / Inclusion / Inheritance Descendants | |
Included In:
| |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
ActiveSupport::Concern
|
|
Defined in: | lib/mongoid/validatable.rb, lib/mongoid/validatable/associated.rb, lib/mongoid/validatable/format.rb, lib/mongoid/validatable/length.rb, lib/mongoid/validatable/localizable.rb, lib/mongoid/validatable/macros.rb, lib/mongoid/validatable/presence.rb, lib/mongoid/validatable/queryable.rb, lib/mongoid/validatable/uniqueness.rb |
Overview
This module provides additional validations that ActiveModel does not provide: validates_associated and validates_uniqueness_of.
Instance Attribute Summary
-
#validated? ⇒ true | false
readonly
Used to prevent infinite loops in associated validations.
-
#validating_with_query? ⇒ true | false
readonly
Are we currently performing a validation that has a query?
Instance Method Summary
-
#begin_validate
Begin the associated validation.
-
#exit_validate
Exit the associated validation.
-
#performing_validations?(options = {}) ⇒ true | false
Given the provided options, are we performing validations?
-
#read_attribute_for_validation(attr) ⇒ Object
Overrides the default ActiveModel behavior since we need to handle validations of associations slightly different than just calling the getter.
-
#valid?(context = nil) ⇒ true | false
Determine if the document is valid.
-
#validating
Perform a validation within the associated block.
DSL Calls
included
[ GitHub ]Instance Attribute Details
#validated? ⇒ true
| false
(readonly)
Used to prevent infinite loops in associated validations.
# File 'lib/mongoid/validatable.rb', line 108
def validated? Threaded.validated?(self) end
#validating_with_query? ⇒ true
| false
(readonly)
Are we currently performing a validation that has a query?
# File 'lib/mongoid/validatable.rb', line 118
def validating_with_query? self.class.validating_with_query? end
Instance Method Details
#begin_validate
Begin the associated validation.
# File 'lib/mongoid/validatable.rb', line 29
def begin_validate Threaded.begin_validate(self) end
#exit_validate
Exit the associated validation.
# File 'lib/mongoid/validatable.rb', line 37
def exit_validate Threaded.exit_validate(self) end
#performing_validations?(options = {}) ⇒ true
| false
Given the provided options, are we performing validations?
# File 'lib/mongoid/validatable.rb', line 59
def performing_validations?( = {}) [:validate].nil? ? true : [:validate] end
#read_attribute_for_validation(attr) ⇒ Object
Overrides the default ActiveModel behavior since we need to handle validations of associations slightly different than just calling the getter.
# File 'lib/mongoid/validatable.rb', line 73
def read_attribute_for_validation(attr) attribute = database_field_name(attr) if relations.key?(attribute) begin_validate relation = without_autobuild { send(attr) } exit_validate relation.try(:in_memory) || relation elsif fields[attribute].try(:localized?) attributes[attribute] else send(attr) end end
#valid?(context = nil) ⇒ true
| false
Determine if the document is valid.
# File 'lib/mongoid/validatable.rb', line 98
def valid?(context = nil) super context ? context : (new_record? ? :create : :update) end
#validating
Perform a validation within the associated block.
# File 'lib/mongoid/validatable.rb', line 42
def validating begin_validate yield ensure exit_validate end