Zamierzam dodać niestandardowe nagłówki HTTP do aplikacji Ruby on Rails, która jest obecnie hostowana na Heroku.
Zamierzam dodać niestandardowe nagłówki HTTP do aplikacji Ruby on Rails, która jest obecnie hostowana na Heroku.
Posługiwać się:
response.headers['HEADER NAME'] = 'HEADER VALUE'
albo w określonej metodzie, albo w metodzie before_filter kontrolera aplikacji, w zależności od tego, czy jest to wymagane w konkretnej, czy we wszystkich odpowiedziach.
Jak zauważył @BrentMatzelle w komentarzach, dla Szyny 5:
response.set_header('HEADER NAME', 'HEADER VALUE')
W szynach 5 działa następujące rozwiązanie (w metodach działania)
response.set_header("Header-Name", "Header value")
Odniesienie: edgeapi
W przypadku rails 4 ustaw nagłówki odpowiedzi w pliku application.rb lub odpowiednich plikach środowiska. Gdy to zrobisz, możesz zastąpić wartość nagłówka, gdziekolwiek potrzebujesz w kontrolerze. Zobacz to adres URL po więcej szczegółów.
W Rails 3, po prostu
headers['Header-Name'] = 'header value'
działa w kontrolerach. To jest parzyste zalecany sposób; według dokumentacja,
Odpowiedź jest głównie szczegółowością implementacji frameworka Ruby on Rails i nigdy nie powinna być używana bezpośrednio w kontrolerach. Kontrolery powinny stosować metody określone w
ActionController::Base
zamiast. Na przykład, jeśli chcesz ustawić typ MIME zawartości odpowiedzi HTTP, użyjActionController::Base#headers
zamiastResponse#headers
.
W szynach 4 działa następująco:
class API::V1::BaseController
after_action :set_version_header
protected
def set_version_header
response.headers['X-ComanyName-Api-Version'] = 'V1'
end
end