获取内容请求类型

mah*_*off 21 rest mime ruby-on-rails http ruby-on-rails-3.1

要查找传入的内容类型,文档说:

 request.headers["Content-Type"] # => "text/plain"
Run Code Online (Sandbox Code Playgroud)

但我通过反复试验发现,这不起作用,但这样做:

 request.headers["CONTENT_TYPE"]=='application/json'
Run Code Online (Sandbox Code Playgroud)

那么最强大+便携的方式是什么呢?

DRo*_*son 34

我通常会去request.formatrequest.content_type读取这些字段.

编辑:发现这可能有所帮助:https://stackoverflow.com/a/1595453/624590


小智 23

您不需要解析content_type字符串,Rails已经为您完成了此操作.只需检查:

request.format.symbol == :json
Run Code Online (Sandbox Code Playgroud)


mon*_*ike 16

另一种写作方式:

request.format.json?
Run Code Online (Sandbox Code Playgroud)


Tim*_*ott 11

由于equals重载,因此无需调用#symbol:

request.format == :json
Run Code Online (Sandbox Code Playgroud)