method
method_missing
v8.1.1 -
Show latest stable
- Class:
ActiveRecord::Delegation::ClassSpecificRelation
method_missing(method, ...)private
No documentation available.
# 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