Я хочу добавить пользовательские заголовки HTTP в приложение Ruby on Rails, которое в настоящее время размещено на Heroku.
Как добавить пользовательский заголовок HTTP?
Ответ 1
Использование:
response.headers['HEADER NAME'] = 'HEADER VALUE'
либо в конкретном методе, либо в методе before_filter вашего контроллера приложений, в зависимости от того, нужно ли это добавить в конкретный или во все ваши ответы.
ОБНОВЛЕНИЕ для Rails 5 - 24 февраля 2018 года
Как отмечает @BrentMatzelle в комментариях, для Rails 5:
response.set_header('HEADER NAME', 'HEADER VALUE')
Ответ 2
В рельсах 5 работает следующее решение (в методах действий)
response.set_header("Header-Name", "Header value")
Ссылка: edgeapi
Ответ 3
В рельсах 4 установите заголовки ответов в файле application.rb или соответствующих файлах среды. После этого вы можете переопределить значение заголовка, где бы вы ни находились в контроллере. Подробнее см. url.
Ответ 4
В Rails 3 или выше просто
headers['Header-Name'] = 'header value'
работает в контроллерах. Это даже рекомендуемый способ; согласно документации,
Ответ - это в основном детали реализации платформы Ruby on Rails, и его никогда нельзя использовать непосредственно в контроллерах. Контроллеры должны использовать методы, определенные в
ActionController::Base
. Например, если вы хотите установить MIME-тип содержимого HTTP-ответов, используйтеActionController::Base#headers
вместоResponse#headers
.
Ответ 5
В рельсах 4 работает следующее:
class API::V1::BaseController
after_action :set_version_header
protected
def set_version_header
response.headers['X-ComanyName-Api-Version'] = 'V1'
end
end