Как добавить пользовательский заголовок http?


Я хочу добавить пользовательские заголовки http в приложение Ruby on Rails, которое в настоящее время размещается на Heroku.

5 56

5 ответов:

использование:

response.headers['HEADER NAME'] = 'HEADER VALUE'

либо в конкретном методе, либо в методе before_filter вашего контроллера приложения в зависимости от того, нужно ли это добавлять в конкретный или во все ваши ответы.

обновление для Rails 5-24 февраля 2018 года

Как отметил @BrentMatzelle в комментариях, для рельсы 5:

response.set_header('HEADER NAME', 'HEADER VALUE')

в rails 5 работает следующее решение (в методах действия)

response.set_header("Header-Name", "Header value")

ссылки: edgeapi

в rails 4 Установите заголовки ответов в приложении.rb или соответствующие файлы среды. После этого вы можете переопределить значение заголовка везде, где требуется в контроллере. Обратитесь к этому url для более подробной информации.

в рельсах 3, просто

headers['Header-Name'] = 'header value'

работает в контроллерах. Это даже the рекомендуемый способ; по данным документация,

ответ в основном является деталью реализации Ruby on Rails framework и никогда не должен использоваться непосредственно в контроллерах. Контроллеры должны использовать методы, определенные в ActionController::Base вместо. Например, если вы хотите установить тип MIME содержимого HTTP-ответа, используйте ActionController::Base#headers вместо Response#headers.

и это по-прежнему верно в Rails 5.1.

в rails 4 работает следующее:

class API::V1::BaseController 
  after_action :set_version_header

  protected
    def set_version_header
        response.headers['X-ComanyName-Api-Version'] = 'V1'
    end
end