每一个例子 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。

如果你想基于实例缓存我会建议做 条件获取.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top