class ActiveRecord::Associations::Preloader::HasCount
Public Instance Methods
association_key_name()
click to toggle source
# File lib/active_record/associations/preloader/has_count.rb, line 5 def association_key_name reflection.foreign_key end
owner_key_name()
click to toggle source
# File lib/active_record/associations/preloader/has_count.rb, line 9 def owner_key_name reflection.active_record_primary_key end
Private Instance Methods
load_slices(slices)
click to toggle source
# File lib/active_record/associations/preloader/has_count.rb, line 24 def load_slices(slices) @preloaded_records = slices.flat_map { |slice| records_for(slice) } @preloaded_records.map { |record| key = record [record, key] } end
preload(preloader)
click to toggle source
# File lib/active_record/associations/preloader/has_count.rb, line 15 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
query_scope(ids)
click to toggle source
# File lib/active_record/associations/preloader/has_count.rb, line 35 def query_scope(ids) scope.where(association_key.in(ids)).pluck(association_key_name) end