Ruby on Rails現在HerokuでホストされているアプリにカスタムHTTPヘッダーを追加したいと考えています。
つかいます:
response.headers['HEADER NAME'] = 'HEADER VALUE'
特定の応答に追加する必要があるか、すべての応答に追加する必要があるかに応じて、特定のメソッドで、またはアプリケーションコントローラーのbefore_filterメソッドに追加します。
コメントで@BrentMatzelleが指摘したように、 Rails 5 の場合:
response.set_header('HEADER NAME', 'HEADER VALUE')
Rails 5では、次のソリューションが機能します(アクションメソッドで)
response.set_header("Header-Name", "Header value")
リファレンス: edgeapi
Rails 4で、application.rbまたはそれぞれの環境ファイルに応答ヘッダーを設定します。それが完了したら、コントローラーの必要な場所でヘッダー値をオーバーライドできます。これを参照してください rl 詳細については。
In Rails 3以上、単に
headers['Header-Name'] = 'header value'
コントローラで動作します。これは偶数the推奨方法です。 ドキュメント によると、
応答はほとんどがRuby on Railsフレームワーク実装の詳細であり、コントローラーで直接使用しないでください。コントローラーは
ActionController::Base
で定義されたメソッドを使用する必要がありますたとえば、HTTP応答のコンテンツMIMEタイプを設定する場合は、ActionController::Base#headers
の代わりにResponse#headers
を使用します。
そして これはRails 5.2 ではまだ当てはまります。
In 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