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''