Method: Sunspot::InstantiatedFacet#populate_instances!
- Defined in:
- lib/sunspot/instantiated_facet.rb
#populate_instances! ⇒ Object
Hydrate all rows for the facet. For data accessors that can efficiently batch load, this is more efficient than individually lazy-loading instances for each row, but allows us to still stay lazy and not do work in the persistent store if the instances are not needed.
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/sunspot/instantiated_facet.rb', line 19 def populate_instances! #:nodoc: ids = rows.map { |row| row.value } reference_class = Sunspot::Util.full_const_get(@facet_data.reference.to_s) accessor = Adapters::DataAccessor.create(reference_class) instance_map = accessor.load_all(ids).inject({}) do |map, instance| map[Adapters::InstanceAdapter.adapt(instance).id] = instance map end for row in rows row.instance = instance_map[row.value] end end |