Rails caches_action和cache_path:确保缓存路径对于action和params是唯一的

时间:2013-06-02 16:06:41

标签: ruby-on-rails-3 caching

我正在使用caches_action

caches_action :index, :show,
              :expires_in => 10.minutes,
              :cache_path => Proc.new { |c| c.params.merge(format: c.request.format).except('gclid') }

这是为了确保对于给定的操作,在缓存时也会考虑请求参数,以便?page=1之类的请求与?page=2不同。

但是我担心通过替换默认路径我没有提供足够的信息。如果我正在缓存多项操作(例如showindex),我是否还需要在cache_path proc中指定操作?我需要在那里抛出控制器名称吗?或者我的proc的返回值是否只附加到已经包含这些东西的一些合理的默认路径上?

文档提到proc“的结果将直接传递给ActionCachePath.path_for”,但也许这已经过时了,因为我在ActionCachePath中没有看到任何path_for方法。

0 个答案:

没有答案