[英]Rails: Conditionally bypass fragment caching
有什么方法可以使片段緩存成為條件,例如,它將始終緩存:
<% cache :calculation do %>
<%= calc(x) %>
<% end %>
但是如果x > 5
,我該如何使其緩存:
<% cache :calculation, { if: (x > 5) } do %>
<%= calc(x) %>
<% end %>
當然,可以使用if-then語句並提取出緩存的內容函數來完成此操作,但這很麻煩。 可能在這種情況下可以通過將ttl設置為零來工作,但是我懷疑仍然會將該項放入緩存中,這是浪費的空間。
您是否嘗試過cache_if
<% cache_if((x > 5), :calculation) do %>
<%= calc(x) %>
<% end %>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.