Подтвердить что ты не робот

Доступ к настраиваемым переменным заголовка в Ruby on Rails

После прочтения следующего вопроса (заголовок авторизации в Ruby on Rails, доступ к которому с ключом HTTP_AUTHORIZATION вместо авторизации?) У меня есть аналогичная проблема с OP, но предлагаемая ответ, похоже, не решает мою проблему.

Я определяю настраиваемый заголовок как таковой при вызове моего локально размещенного сервера (через Postman):

@Igor: Я действительно использую Postman, поэтому я просто добавил код завитка, чтобы продемонстрировать, что я сделал. Думаю, было бы лучше включить скриншот:

enter image description here

И это код моего контроллера, который пытается прочитать указанный заголовок:

def authenticate_through_header
  custom_header_value = request.headers['custom_header']
end

Однако этот возврат nil. С другой стороны, request.headers['HTTP_CUSTOM_HEADER'] возвращает значение. В соответствии с вопросом, с которым я сначала связался, я должен иметь возможность получить значение через передачу имени в скобках [] - это что-то, что было изменено в новых версиях Rails?

Приветствия: -)

Обновление: он также работает для доступа к переменной следующим образом: request.headers['custom-header']. По-видимому, это работает, чтобы заменить подчеркивание дефисом, что кажется странным.

4b9b3361

Ответ 1

Да, он изменился в Rails 4. Посмотрите на код Http:: Headers.

Теперь пользовательские переменные всегда добавляются с HTTP_ и _ в ваши переменные заменяются на -, за исключением Переменные CGI.

НТН

РЕДАКТИРОВАТЬ: снова проверяется, - в переменных заменяется на _ и добавляется к HTTP_. В приведенной ссылке проверьте line number 91-94:

key = key.upcase.tr('-', '_')