module ActionView::CollectionCaching

def cache_collection_render

def cache_collection_render
  return yield unless cache_collection?
  keyed_collection = collection_by_cache_keys
  partial_cache = collection_cache.read_multi(*keyed_collection.keys)
  @collection = keyed_collection.reject { |key, _| partial_cache.key?(key) }.values
  rendered_partials = @collection.any? ? yield.dup : []
  fetch_or_cache_partial(partial_cache, order_by: keyed_collection.each_key) do
    rendered_partials.shift
  end
end