在启用动作缓存时,我遇到了
JSON到json请求的响应问题.
我有一个非常简单的控制器来响应JSON和HTML以及缓存对HTML响应都很好,但是我注意到当我请求JSON时,通常会使用JSON进行响应,但是启用了动作缓存,它将布局中的JSON输出!
当我清除缓存时,它给我一个错误,没有默认的布局存在:
ArgumentError in ClipsController#index
There was no default layout for ClipsController in…
如何为缓存操作返回JSON?
更新,我怀疑布局的错误与缓存操作的方式有关:
caches_action:index,:layout =>假
我不确定,为什么在JSON响应的情况下仍然需要布局,因为没有缓存没有问题.
暂时我修改缓存过滤器不缓存JSON请求,但这不是一个理想的解决方法,如果我想缓存JSON,该怎么办?
caches_action:index,:layout => false,if => Proc.new {| c | !c.request.format.json? }