1

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.

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

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

4

0 回答 0