我caches_action
这样使用:
caches_action :index, :show,
:expires_in => 10.minutes,
:cache_path => Proc.new { |c| c.params.merge(format: c.request.format).except('gclid') }
这是为了确保对于给定的操作,在缓存时也会考虑请求参数,以便请求 like?page=1
不同于?page=2
.
但我担心通过替换默认路径我没有提供足够的信息。如果我正在缓存多个动作(例如show
和index
),我是否还需要在我的cache_path
proc 中指定动作?我需要在那里输入控制器名称吗?还是我的 proc 的返回值只是附加到一些已经包含这些东西的合理默认路径?
文档提到 proc 的结果“将直接传递给 ActionCachePath.path_for”,但也许这已经过时了,因为我path_for
在 ActionCachePath 中看不到任何方法。