Class: EagerGroup::Preloader::HasMany
- Inherits:
-
AggregationFinder
- Object
- AggregationFinder
- EagerGroup::Preloader::HasMany
- Defined in:
- lib/eager_group/preloader/has_many.rb
Instance Attribute Summary
Attributes inherited from AggregationFinder
#arguments, #definition, #klass, #record_ids, #reflection
Instance Method Summary collapse
Methods inherited from AggregationFinder
#definition_scope, #group_by_key, #initialize
Constructor Details
This class inherits a constructor from EagerGroup::Preloader::AggregationFinder
Instance Method Details
#aggregate_hash ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/eager_group/preloader/has_many.rb', line 10 def aggregate_hash scope = reflection.klass.all.tap{|query| query.merge!(definition_scope) if definition_scope } scope.where(group_by_foreign_key => record_ids). where(polymophic_as_condition). group(group_by_foreign_key). send(definition.aggregation_function, definition.column_name) end |
#group_by_foreign_key ⇒ Object
6 7 8 |
# File 'lib/eager_group/preloader/has_many.rb', line 6 def group_by_foreign_key reflection.foreign_key end |