aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2016-03-03 16:49:31 +0100
committerYves Senn <yves.senn@gmail.com>2016-03-03 16:52:35 +0100
commitcd73632d9d47752013f46e775e59241215cfd8e9 (patch)
treeabe436e4af39fc0461191b9190b7f88e36625433 /activerecord/lib/active_record/associations
parentba438dbfaed4d6bc62ffc519993770753eb74259 (diff)
downloadrails-cd73632d9d47752013f46e775e59241215cfd8e9.tar.gz
rails-cd73632d9d47752013f46e775e59241215cfd8e9.tar.bz2
rails-cd73632d9d47752013f46e775e59241215cfd8e9.zip
don't treat all associations with extensions as instance dependent.
Closes #23934. This is a forward port of ac832a43b4d026dbad28fed196d2de69ec9928ac Previously the scope of all associations with extensions were wrapped in an instance dependent proc. This made it impossible to preload such associations.
Diffstat (limited to 'activerecord/lib/active_record/associations')
-rw-r--r--activerecord/lib/active_record/associations/builder/collection_association.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/associations/builder/collection_association.rb b/activerecord/lib/active_record/associations/builder/collection_association.rb
index 56a8dc4e18..f25bd7ca9f 100644
--- a/activerecord/lib/active_record/associations/builder/collection_association.rb
+++ b/activerecord/lib/active_record/associations/builder/collection_association.rb
@@ -70,7 +70,11 @@ module ActiveRecord::Associations::Builder # :nodoc:
def self.wrap_scope(scope, mod)
if scope
- proc { |owner| instance_exec(owner, &scope).extending(mod) }
+ if scope.arity > 0
+ proc { |owner| instance_exec(owner, &scope).extending(mod) }
+ else
+ proc { instance_exec(&scope).extending(mod) }
+ end
else
proc { extending(mod) }
end