Что такое и почему есть разница между request.env ['CONTENT_TYPE'] и request.content_type? - PullRequest
3 голосов
/ 01 февраля 2011

Я вижу два разных значения для 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 Ответ

5 голосов
/ 01 февраля 2011

request.env содержит «мысли» Рэка о типе контента.Как правило, это тип содержимого запроса, который вы сделали. С другой стороны,

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

...