我在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"
提供?
我可能做错了什么?
答案 0 :(得分:0)
我修正了问题只是将format: :json
添加到路线中,正如official documentation所说:
但是考虑了:format参数。按MIME类型缓存的最安全方法是传递路由中的格式。