我正在使用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
不同。
但是我担心通过替换默认路径我没有提供足够的信息。如果我正在缓存多项操作(例如show
和index
),我是否还需要在cache_path
proc中指定操作?我需要在那里抛出控制器名称吗?或者我的proc的返回值是否只附加到已经包含这些东西的一些合理的默认路径上?
文档提到proc“的结果将直接传递给ActionCachePath.path_for”,但也许这已经过时了,因为我在ActionCachePath中没有看到任何path_for
方法。