aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations/preloader/has_and_belongs_to_many.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/associations/preloader/has_and_belongs_to_many.rb')
-rw-r--r--activerecord/lib/active_record/associations/preloader/has_and_belongs_to_many.rb5
1 files changed, 4 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/associations/preloader/has_and_belongs_to_many.rb b/activerecord/lib/active_record/associations/preloader/has_and_belongs_to_many.rb
index 996575f5aa..b62ca6f681 100644
--- a/activerecord/lib/active_record/associations/preloader/has_and_belongs_to_many.rb
+++ b/activerecord/lib/active_record/associations/preloader/has_and_belongs_to_many.rb
@@ -38,7 +38,7 @@ module ActiveRecord
caster = nil
name = association_key_name
- slices.flat_map { |slice|
+ records_to_keys = slices.flat_map { |slice|
records = records_for(slice)
caster ||= records.column_types.fetch(name, records.identity_type)
records.map! { |row|
@@ -46,6 +46,9 @@ module ActiveRecord
[record, caster.type_cast(row[name])]
}
}
+ @preloaded_records = records_to_keys.map(&:first)
+
+ records_to_keys
end
def build_scope