你如何添加一个自定义的http头?

我正在寻找添加自定义http头到Heroku上当前托pipe的Ruby on Rails应用程序。

使用:

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

无论是在特定的方法还是应用程序控制器的before_filter方法,取决于您是否需要将其添加到特定或所有响应中。

在rails 5中,以下解决scheme工作(在操作方法中)

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

参考: edgeapi

在rails 4中,在application.rb或相应的环境文件中设置响应头。 一旦你完成了,你可以覆盖控制器中所需的任何地方的标题值。 请参阅此url了解更多详情。

在Rails 3中,简单地说

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

在控制器中工作。 这甚至推荐的方式; 根据文件 ,

响应主要是一个Ruby on Rails框架实现细节,不应直接在控制器中使用。 控制器应该使用ActionController::Base定义的方法。 例如,如果要设置HTTP响应的内容MIMEtypes,请使用ActionController::Base#headers而不是Response#headers

这在Rails 5.1中仍然是正确的 。

在轨道4工程如下:

 class API::V1::BaseController after_action :set_version_header protected def set_version_header response.headers['X-ComanyName-Api-Version'] = 'V1' end end