aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations
diff options
context:
space:
mode:
authorAndrew White <andyw@pixeltrix.co.uk>2012-06-01 03:03:50 +0100
committerAndrew White <andyw@pixeltrix.co.uk>2012-06-01 03:03:50 +0100
commit7056079761eba049bbc6108946a1626fe169dbdf (patch)
tree6f55bdc0521a3dd521cb2776da07d927236203cf /activerecord/lib/active_record/associations
parent4df968071436a4585c8e4694efecfabb02f1a806 (diff)
downloadrails-7056079761eba049bbc6108946a1626fe169dbdf.tar.gz
rails-7056079761eba049bbc6108946a1626fe169dbdf.tar.bz2
rails-7056079761eba049bbc6108946a1626fe169dbdf.zip
Restore behavior of Active Record 3.2.3 scopes
A series of commits relating to preloading and scopes caused a regression. Cloning the relation calls initialize_copy which resets a number of instance variables to nil. Without this the scope thinks that it is already loaded when it is called again. Reverts the following commits: 13f1401a6cf0266a3b0a91b173f976db2d4e50f3 8491740ca5361ba9df20e1c8b906c709f5bfbc12 dffbb521a0d00c8673a3ad6e0e8ff526f32daf4e Fixes #6575, #6576 & #6577
Diffstat (limited to 'activerecord/lib/active_record/associations')
-rw-r--r--activerecord/lib/active_record/associations/preloader/association.rb5
1 files changed, 2 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/associations/preloader/association.rb b/activerecord/lib/active_record/associations/preloader/association.rb
index ab50e43ea0..779f8164cc 100644
--- a/activerecord/lib/active_record/associations/preloader/association.rb
+++ b/activerecord/lib/active_record/associations/preloader/association.rb
@@ -77,7 +77,7 @@ module ActiveRecord
# Some databases impose a limit on the number of ids in a list (in Oracle it's 1000)
# Make several smaller queries if necessary or make one query if the adapter supports it
sliced = owner_keys.each_slice(model.connection.in_clause_length || owner_keys.size)
- records = sliced.map { |slice| records_for(slice).to_a }.flatten
+ records = sliced.map { |slice| records_for(slice) }.flatten
end
# Each record may have multiple owners, and vice-versa
@@ -93,8 +93,7 @@ module ActiveRecord
end
def build_scope
- scope = klass.unscoped
- scope.default_scoped = true
+ scope = klass.scoped
scope = scope.where(process_conditions(options[:conditions]))
scope = scope.where(process_conditions(preload_options[:conditions]))