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/numericality.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 109
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 119
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 30
def begin_validate Threaded.begin_validate(self) end
#exit_validate
Exit the associated validation.
# File 'lib/mongoid/validatable.rb', line 38
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 60
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 74
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 99
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 43
def validating begin_validate yield ensure exit_validate end