使用特殊参数禁用和刷新rails缓存

时间:2011-11-22 18:00:44

标签: ruby-on-rails-3

我在rails应用程序中使用缓存,但有时候我希望能够关闭特定请求的缓存或重新生成缓存数据(在生产中)。我想做这个调试,但也想看看两者之间的性能差异。

  1. 有没有办法在整个电路板上关闭缓存(类似于& cache = false)而不在我的代码中添加这样的内容:

    <% cache(x) unless params[:cache] == "false" do %>
    
  2. 有没有办法告诉rails在呈现页面时重置所有缓存的元素,重新生成它们?这可行,但同样,我必须在任何地方都这样做:

    <% Rails.cache.delete <key> if params[:clear_cache] == "true" %>
    
  3. 还是有充分理由说我不应该这样做。

1 个答案:

答案 0 :(得分:1)

您可以随时将其编写为您使用的方法而不是“缓存”

def my_cache(x)
   return x if params[:cache].blank? || params[:cache] == true
   cache(x)
end

你的观点不那么混乱......

或者,你可能(我猜)能够使用ActionController::Base的缓存内部...但它是对rails的基本代码进行元攻击