Ruby on rails Rails:有条件地绕过片段缓存

Ruby on rails Rails:有条件地绕过片段缓存,ruby-on-rails,templates,caching,memcached,ruby-on-rails-5,Ruby On Rails,Templates,Caching,Memcached,Ruby On Rails 5,是否有任何方法使片段缓存有条件,例如,这将始终缓存: <% cache :calculation do %> <%= calc(x) %> <% end %> 当然,可以使用if-then语句并提取缓存的内容函数来完成,但这很麻烦。在这种情况下,通过将ttl设置为零,它可能会工作,但我怀疑这仍然会将该项放入缓存,这是浪费空间。您尝试过吗 5),:计算)do%> 您试过了吗 5),:计算)do%> <% cache :calculation

是否有任何方法使片段缓存有条件,例如,这将始终缓存:

 <% cache :calculation do %>
   <%= calc(x) %>
 <% end %>
当然,可以使用if-then语句并提取缓存的内容函数来完成,但这很麻烦。在这种情况下,通过将ttl设置为零,它可能会工作,但我怀疑这仍然会将该项放入缓存,这是浪费空间。

您尝试过吗

5),:计算)do%>
您试过了吗

5),:计算)do%>
 <% cache :calculation, { if: (x > 5) } do %>
   <%= calc(x) %>
 <% end %>
<% cache_if((x > 5), :calculation) do %>
  <%= calc(x) %>
<% end %>