nic*_*hvi 29 ruby-on-rails http ruby-on-rails-4
在阅读了下面的问题(Ruby on Rails中的授权标题,使用密钥HTTP_AUTHORIZATION而不是授权进行访问?)我遇到了与OP类似的问题,但建议的答案似乎并没有解决我的问题.
我在本地托管服务器(通过Postman)的调用中定义了一个自定义标头:
@Igor:我实际上使用Postman,所以我只是添加了curl代码来演示我做了什么.我想最好包含一个截图:

这是我的控制器中的代码,它试图读取所述标题:
def authenticate_through_header
custom_header_value = request.headers['custom_header']
end
Run Code Online (Sandbox Code Playgroud)
但是,这回归nil.另一方面,request.headers['HTTP_CUSTOM_HEADER']返回值.根据我最初链接的问题,我应该能够通过在括号[]中传递名称来获取值 - 这是在较新的Rails版本中已经更改的内容吗?
干杯:-)
更新:它还可以通过以下方式访问变量:request.headers['custom-header'].所以显然它可以用连字符替换下划线,这似乎很奇怪.
Har*_*pta 43
是的,它已经改变了Rails 4.看一下Http :: Headers代码.
现在自定义变量总是以HTTP_和为前缀,CGI变量除外._ 在您的变量中替换为 -
HTH
编辑:再次检查,-变量被替换为_和被添加HTTP_.在上面的链接中,检查line number 91-94:
key = key.upcase.tr('-', '_')
Run Code Online (Sandbox Code Playgroud)