Module: ActiveRecord::Delegation::ClassSpecificRelation
    Do not use.  This module is for internal use only.
  
| Relationships & Source Files | |
| Namespace Children | |
| 
       Modules: 
      
     | |
| Super Chains via Extension / Inclusion / Inheritance | |
| 
         Class Chain: 
        
          self,
           
      ::ActiveSupport::Concern
         | 
    |
| Defined in: | activerecord/lib/active_record/relation/delegation.rb | 
Class Method Summary
::ActiveSupport::Concern - Extended
| class_methods | Define class methods from given block.  | 
    
| included | Evaluate given block in context of base class, so that you can write class macros here.  | 
    
| prepended | Evaluate given block in context of base class, so that you can write class macros here.  | 
    
| append_features, prepend_features | |
Instance Method Summary
- #method_missing(method) private
 
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method) (private)
[ GitHub ]# File 'activerecord/lib/active_record/relation/delegation.rb', line 117
def method_missing(method, ...) if model.respond_to?(method) if !DelegateCache.delegate_base_methods && Base.respond_to?(method) # A common mistake in Active Record's own code is to call `ActiveRecord::Base` # class methods on Association. It works because it's automatically delegated, but # can introduce subtle bugs because it sets the global scope. # We can't deprecate this behavior because gems might depend on it, however we # can ban it from Active Record's own test suite to avoid regressions. raise NotImplementedError, "Active Record code shouldn't rely on association delegation into ActiveRecord::Base methods" elsif !Delegation.uncacheable_methods.include?(method) model.generate_relation_method(method) end scoping { model.public_send(method, ...) } else super end end