Sha256: 45052171eeb79a0fd23ee9e2272dce2b3a5f63ab44f0bd49a5f4e1a84a33223a
Contents?: true
Size: 977 Bytes
Versions: 8
Compression:
Stored size: 977 Bytes
Contents
module ActiveRecord module Associations class Preloader class CountLoader < SingularAssociation def association_key_name reflection.foreign_key end def owner_key_name reflection.active_record_primary_key end private def preload(preloader) associated_records_by_owner(preloader).each do |owner, associated_records| count = associated_records.count association = owner.association(reflection.name) association.target = count end end def load_slices(slices) @preloaded_records = slices.flat_map { |slice| records_for(slice) } @preloaded_records.map { |record| key = record [record, key] } end def query_scope(ids) scope.where(association_key.in(ids)).pluck(association_key_name) end end end end end
Version data entries
8 entries across 8 versions & 2 rubygems