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
permalink #method_missing(method, *args, &block) ⇒ Object (private)
[View source]
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/active_record/relation/delegation.rb', line 81 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 |