aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2014-10-14 16:16:13 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2014-10-14 16:16:29 -0700
commitb59d47d82e6ecb4308b675875b5a62c79858645e (patch)
tree85ecbf4d959d64f4ba7a69f87af52943231615e7 /activerecord/lib/active_record/associations
parent6bb040b55748269dd2cb2ae3a36fa54ca7c70c5e (diff)
downloadrails-b59d47d82e6ecb4308b675875b5a62c79858645e.tar.gz
rails-b59d47d82e6ecb4308b675875b5a62c79858645e.tar.bz2
rails-b59d47d82e6ecb4308b675875b5a62c79858645e.zip
break cache if we're inside a "scoping" call. fixes #17052
For now, we don't want to take "scoping" calls in to account when calculating cache keys for relations, so just opt-out.
Diffstat (limited to 'activerecord/lib/active_record/associations')
-rw-r--r--activerecord/lib/active_record/associations/singular_association.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/associations/singular_association.rb b/activerecord/lib/active_record/associations/singular_association.rb
index b9326b9683..c360ef1b2c 100644
--- a/activerecord/lib/active_record/associations/singular_association.rb
+++ b/activerecord/lib/active_record/associations/singular_association.rb
@@ -39,7 +39,12 @@ module ActiveRecord
end
def get_records
- return scope.limit(1).to_a if reflection.scope_chain.any?(&:any?) || scope.eager_loading?
+ if reflection.scope_chain.any?(&:any?) ||
+ scope.eager_loading? ||
+ klass.current_scope
+
+ return scope.limit(1).to_a
+ end
conn = klass.connection
sc = reflection.association_scope_cache(conn, owner) do