簡體   English   中英

Rails:有條件地繞過片段緩存

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM