Module: ActiveRecord::Delegation::ClassSpecificRelation
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/active_record/relation/delegation.rb
Overview
:nodoc:
Defined Under Namespace
Modules: ClassMethods
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object (private)
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/active_record/relation/delegation.rb', line 111 def method_missing(method, *args, &block) if @klass.respond_to?(method) self.class.delegate_to_scoped_klass(method) scoping { @klass.public_send(method, *args, &block) } elsif @delegate_to_klass && @klass.respond_to?(method, true) ActiveSupport::Deprecation.warn \ "Delegating missing #{method} method to #{@klass}. " \ "Accessibility of private/protected class methods in :scope is deprecated and will be removed in Rails 6.0." @klass.send(method, *args, &block) elsif arel.respond_to?(method) ActiveSupport::Deprecation.warn \ "Delegating #{method} to arel is deprecated and will be removed in Rails 6.0." arel.public_send(method, *args, &block) else super end end |