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 (protected)



57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/active_record/relation/delegation.rb', line 57

def method_missing(method, *args, &block)
  if @klass.respond_to?(method)
    self.class.delegate_to_scoped_klass(method)
    scoping { @klass.send(method, *args, &block) }
  elsif Array.method_defined?(method)
    self.class.delegate method, :to => :to_a
    to_a.send(method, *args, &block)
  elsif arel.respond_to?(method)
    self.class.delegate method, :to => :arel
    arel.send(method, *args, &block)
  else
    super
  end
end