Что такое и почему существует разница между request.env['CONTENT_TYPE'] и request.content_type?

Я вижу два разных значения для request.env['CONTENT_TYPE'] а также request.content_type,

Из отдельного приложения я отправляю запрос в приложение Rails и явно установил Content-Type в text/xml,

Вот что я вижу на другом конце моего приложения Rails:

request.env['CONTENT_TYPE'] = "text/xml"
request.content_type = "application/xml"

request.content_type на самом деле action_dispatch.request.content_type

  1. В чем разница между request.env['CONTENT_TYPE'] а также request.content_type?
  2. Почему эти два значения разные?

1 ответ

Решение

request.env содержит "мысли" Рэка о типе контента. Обычно это тип содержимого запроса, который вы сделали.

request.content_type с другой стороны, интерпретация Rails того, что он думает о типе контента, основана на формате запроса. Они определены в файле с именем mime_types.rb в Rails (я не могу вспомнить, какую часть, но с этим вы должны быть в состоянии найти его), и дополнительные могут быть указаны в config/initializers/mime_types.rb,

Другие вопросы по тегам