rails文档说可以在部分渲染上使用cached: true
来缓存它,但我无法确定expires_in
是否可以在那里工作。像这样:
= render template: 'admin/stats/daily_finance', cached: true, expires_in: 1.hour
这有效吗?
答案 0 :(得分:0)
我相信答案是“不”(或尚未)。我为此提出了一个问题,并提出了使之起作用的猴子补丁:https://github.com/rails/rails/issues/33424
这是猴子补丁,FWIW:
module CoreExtensions
module ActionView
module PartialRenderer
# Add the ability to specify cache options (expires_by) when using cached collection partials
def fetch_or_cache_partial(cached_partials, order_by:)
cache_options = @options.slice(:expires_in) # REVIEW: is Ruby 2.5-requiring code allowed here?
order_by.map do |cache_key|
cached_partials.fetch(cache_key) do
yield.tap do |rendered_partial|
collection_cache.write(cache_key, rendered_partial, cache_options)
end
end
end
end
end
end