我在rails应用程序中使用缓存,但有时候我希望能够关闭特定请求的缓存或重新生成缓存数据(在生产中)。我想做这个调试,但也想看看两者之间的性能差异。
有没有办法在整个电路板上关闭缓存(类似于& cache = false)而不在我的代码中添加这样的内容:
<% cache(x) unless params[:cache] == "false" do %>
有没有办法告诉rails在呈现页面时重置所有缓存的元素,重新生成它们?这可行,但同样,我必须在任何地方都这样做:
<% Rails.cache.delete <key> if params[:clear_cache] == "true" %>
还是有充分理由说我不应该这样做。
答案 0 :(得分:1)
您可以随时将其编写为您使用的方法而不是“缓存”
def my_cache(x)
return x if params[:cache].blank? || params[:cache] == true
cache(x)
end
你的观点不那么混乱......
或者,你可能(我猜)能够使用ActionController::Base
的缓存内部...但它是对rails的基本代码进行元攻击