diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2014-09-04 17:24:34 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2014-09-04 17:24:34 -0700 |
commit | ed7c851c4b43936453cacf41013a49fa57854ea5 (patch) | |
tree | abff51c61bc63a16f4ca53dd9170c392299095f6 /activerecord/lib/active_record | |
parent | 2e6625fb775783cdbc721391be18a073a5b9a9c8 (diff) | |
parent | 4abbdbdf1656e9bed6f744723a901cbaf6878df4 (diff) | |
download | rails-ed7c851c4b43936453cacf41013a49fa57854ea5.tar.gz rails-ed7c851c4b43936453cacf41013a49fa57854ea5.tar.bz2 rails-ed7c851c4b43936453cacf41013a49fa57854ea5.zip |
Merge pull request #16788 from codeodor/fix-16761
Skip StatementCache for eager loaded associations
Diffstat (limited to 'activerecord/lib/active_record')
3 files changed, 3 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/associations/collection_association.rb b/activerecord/lib/active_record/associations/collection_association.rb index 065a2cff01..1836ff0910 100644 --- a/activerecord/lib/active_record/associations/collection_association.rb +++ b/activerecord/lib/active_record/associations/collection_association.rb @@ -407,7 +407,7 @@ module ActiveRecord private def get_records - return scope.to_a if reflection.scope_chain.any?(&:any?) + return scope.to_a if reflection.scope_chain.any?(&:any?) || scope.eager_loading? conn = klass.connection sc = reflection.association_scope_cache(conn, owner) do diff --git a/activerecord/lib/active_record/associations/singular_association.rb b/activerecord/lib/active_record/associations/singular_association.rb index f2e3a4e40f..b9326b9683 100644 --- a/activerecord/lib/active_record/associations/singular_association.rb +++ b/activerecord/lib/active_record/associations/singular_association.rb @@ -39,7 +39,7 @@ module ActiveRecord end def get_records - return scope.limit(1).to_a if reflection.scope_chain.any?(&:any?) + return scope.limit(1).to_a if reflection.scope_chain.any?(&:any?) || scope.eager_loading? conn = klass.connection sc = reflection.association_scope_cache(conn, owner) do diff --git a/activerecord/lib/active_record/core.rb b/activerecord/lib/active_record/core.rb index 82b9c79533..2e9c9e3197 100644 --- a/activerecord/lib/active_record/core.rb +++ b/activerecord/lib/active_record/core.rb @@ -152,6 +152,7 @@ module ActiveRecord def find_by(*args) return super if current_scope || !(Hash === args.first) || reflect_on_all_aggregations.any? + return super if default_scopes.any? hash = args.first |