Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用caches\u操作在Rails中缓存JSON操作_Ruby On Rails_Ruby_Json_Api_Caching - Fatal编程技术网

Ruby on rails 使用caches\u操作在Rails中缓存JSON操作

Ruby on rails 使用caches\u操作在Rails中缓存JSON操作,ruby-on-rails,ruby,json,api,caching,Ruby On Rails,Ruby,Json,Api,Caching,我在Rails控制器中缓存JSON操作时遇到问题。发生的情况是,从Android应用程序,我向端点发出请求,在头中指定mime类型“application/json”,但响应为“text/html” 这是我唯一使用caches\u action的操作,我正在使用caches\u action,因此不会跳过我的过滤器(如页面\u action) 我正在使用: caches_action :cards, expires_in: 1.day, cache_path: "m

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

这是我唯一使用
caches\u action
的操作,我正在使用
caches\u action
,因此不会跳过我的过滤器(如
页面\u action

我正在使用:

caches_action :cards, expires_in: 1.day,
               cache_path: "mobile/cards/card_id_#{params[:card_id]}"
如果我将
.json
附加到请求url,它就可以工作,但我不想这样做,因为此应用程序中的所有其他json端点都不需要这样做

为什么Rails强制将响应作为
“text/html”


我可能做错了什么?

我只需将
格式::json
添加到路由中,就解决了这个问题,如下所示:

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


嘿@rodrigoalves,你能更详细地描述一下吗?也许可以提供一个例子?嗨,一个例子是
resources:posts,format::json