设置caches_action,:expires_in=>动态
-
15-11-2019 - |
题
每一个例子 caches_action
我见过:
caches_action, :expires_in => 5.minutes
但我想设定 expires_in
基于动作中使用的对象的到期时间。有没有办法在设置时引用该对象 expires_in
由于有问题的对象是基于 params
发送到行动?
我试过使用
caches_action, :expires_in => Object.find(params[:id])
但唉,它不会让我在那里引用params。建议欢迎!
解决方案
看起来你需要使用一个Proc,它可以通过控制器的参数。下面是一个例子
caches_action :show, cache_path: Proc.new {|controller_instance| "some_cache_path_that_is_uniq/#{controller_instance.params[:id]}"}
其他提示
动作缓存的要点是防止每次新请求进入时运行动作。除非明确定义,否则不考虑params。
如果你想基于实例缓存我会建议做 条件获取.
不隶属于 StackOverflow