diff options
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.rb | 5 |
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 |