diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2013-08-28 17:54:58 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2013-08-28 17:54:58 -0700 |
commit | 242d70278689a0f7e6c6f415992c8de0aa5caee0 (patch) | |
tree | 64dea43b6cd73ebd543b13a3c791339ba535daf7 /activerecord/lib/active_record/associations/preloader | |
parent | 98c085357e87ee49aec27d270f18502f2a062bef (diff) | |
download | rails-242d70278689a0f7e6c6f415992c8de0aa5caee0.tar.gz rails-242d70278689a0f7e6c6f415992c8de0aa5caee0.tar.bz2 rails-242d70278689a0f7e6c6f415992c8de0aa5caee0.zip |
remove extra flat_map array
Diffstat (limited to 'activerecord/lib/active_record/associations/preloader')
-rw-r--r-- | activerecord/lib/active_record/associations/preloader/association.rb | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/activerecord/lib/active_record/associations/preloader/association.rb b/activerecord/lib/active_record/associations/preloader/association.rb index 3059bae76f..dbcb1e75a9 100644 --- a/activerecord/lib/active_record/associations/preloader/association.rb +++ b/activerecord/lib/active_record/associations/preloader/association.rb @@ -82,15 +82,16 @@ 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(klass.connection.in_clause_length || owner_keys.size) - records = sliced.flat_map { |slice| records_for(slice) } - - records.each do |record| - owner_key = owner_id_for records, record - - owners_map[owner_key].each do |owner| - records_by_owner[owner] << record + sliced.each { |slice| + records = records_for(slice) + records.each do |record| + owner_key = owner_id_for records, record + + owners_map[owner_key].each do |owner| + records_by_owner[owner] << record + end end - end + } end records_by_owner |