rails generate before_action ruby-on-rails http rest ruby-on-rails-3.1 mime

ruby on rails - generate - Obtener el tipo de contenido de la solicitud



routes in ruby on rails (6)

Para encontrar el tipo de contenido entrante, los documentos dicen :

request.headers["Content-Type"] # => "text/plain"

Pero encontré por prueba y error que no funciona, pero esto sí:

request.headers["CONTENT_TYPE"]==''application/json''

Entonces, ¿cuál es la forma más robusta y portátil de hacerlo?


No es necesario analizar la cadena de tipo de contenido, Rails ya lo ha hecho por ti. Sólo revisa:

request.format.symbol == :json


No hay necesidad de llamar a #symbol ya que igual se sobrecarga:

request.format == :json


Normalmente iría para request.format y request.content_type para leer estos campos de encabezado.

EDITAR : encontré un poco más sobre esto que podría ayudar: https://.com/a/1595453/624590


Otra forma de escribirlo:

request.format.json?


Para mí, la mejor manera de comprobar si la solicitud entrante es un json era:

if request.content_type =~ /json/


request.format == ''application / json''