aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib/action_view/renderer/partial_renderer/collection_caching.rb
diff options
context:
space:
mode:
authorKasper Timm Hansen <kaspth@gmail.com>2016-02-12 23:00:53 +0100
committerKasper Timm Hansen <kaspth@gmail.com>2016-02-12 23:00:53 +0100
commit8e331713f2496396405787e4364bad9e0ac529fa (patch)
treeb21e122edecaa8c57b3d2f26a4ff30a7c0639af0 /actionview/lib/action_view/renderer/partial_renderer/collection_caching.rb
parenta88c5ff96de98b67c75a04711847b3a29c2df411 (diff)
downloadrails-8e331713f2496396405787e4364bad9e0ac529fa.tar.gz
rails-8e331713f2496396405787e4364bad9e0ac529fa.tar.bz2
rails-8e331713f2496396405787e4364bad9e0ac529fa.zip
Write to collection cache where the template is rendered.
Moves us closer to having access to a local template variable, we can ask for eligibility and its virtual_path. Currently we rely on `@template`, which we don't have available when rendering collections without a fixed template.
Diffstat (limited to 'actionview/lib/action_view/renderer/partial_renderer/collection_caching.rb')
-rw-r--r--actionview/lib/action_view/renderer/partial_renderer/collection_caching.rb17
1 files changed, 8 insertions, 9 deletions
diff --git a/actionview/lib/action_view/renderer/partial_renderer/collection_caching.rb b/actionview/lib/action_view/renderer/partial_renderer/collection_caching.rb
index c353eb0b31..a037424498 100644
--- a/actionview/lib/action_view/renderer/partial_renderer/collection_caching.rb
+++ b/actionview/lib/action_view/renderer/partial_renderer/collection_caching.rb
@@ -51,16 +51,15 @@ module ActionView
end
def fetch_or_cache_partial(cached_partials, order_by:)
- rely_on_individual_cache_call = !callable_cache_key?
-
order_by.map do |key|
- cached_partials.fetch(key) do
- yield.tap do |rendered_partial|
- unless rely_on_individual_cache_call
- collection_cache.write(key, rendered_partial, @options[:cache_options])
- end
- end
- end
+ cached_partials.fetch(key) { yield }
+ end
+ end
+
+ def collection_cache_rendered_partial(rendered_partial, key_by)
+ if callable_cache_key?
+ key = expanded_cache_key(@options[:cache].call(key_by))
+ collection_cache.write(key, rendered_partial, @options[:cache_options])
end
end
end