使用caches_action在Rails中缓存JSON操作

时间:2014-10-28 17:51:13

标签: ruby-on-rails ruby json api caching

我在Rails控制器中缓存JSON操作时遇到问题。会发生什么情况,我从Android应用程序向端点发出请求,在标头中指定mime类型"application/json",但响应为"text/html"

这是我使用caches_action的唯一操作,我使用的是caches_action,因此我的过滤器不会被跳过(例如在pages_action中)。

我正在使用:

caches_action :cards, expires_in: 1.day,
               cache_path: "mobile/cards/card_id_#{params[:card_id]}"

如果我将.json附加到请求网址,它会有效,但我不想这样做,因为此应用程序中的所有其他JSON端点都不需要。

为什么Rails强制将响应作为"text/html"提供?

我可能做错了什么?

1 个答案:

答案 0 :(得分:0)

我修正了问题只是将format: :json添加到路线中,正如official documentation所说:

  

但是考虑了:format参数。按MIME类型缓存的最安全方法是传递路由中的格式。