method
cache_collection_render
v5.1.7 -
Show latest stable
- Class:
ActionView::CollectionCaching
cache_collection_render(instrumentation_payload)private
No documentation available.
# File actionview/lib/action_view/renderer/partial_renderer/collection_caching.rb, line 12
def cache_collection_render(instrumentation_payload)
return yield unless @options[:cached]
keyed_collection = collection_by_cache_keys
cached_partials = collection_cache.read_multi(*keyed_collection.keys)
instrumentation_payload[:cache_hits] = cached_partials.size
@collection = keyed_collection.reject { |key, _| cached_partials.key?(key) }.values
rendered_partials = @collection.empty? ? [] : yield
index = 0
fetch_or_cache_partial(cached_partials, order_by: keyed_collection.each_key) do
rendered_partials[index].tap { index += 1 }
end
end