Ruby on rails 在RubyonRails中访问自定义头变量
在阅读了下面的问题()之后,我遇到了一个与OP类似的问题,但提出的答案似乎并没有解决我的问题 我在对本地托管服务器的调用中(通过邮递员)定义了一个自定义头: @Igor:我实际上使用了Postman,所以我只是添加了curl代码来演示我所做的。我想最好包括一个屏幕截图: 这是我的控制器中的代码,它试图读取所述标题:Ruby on rails 在RubyonRails中访问自定义头变量,ruby-on-rails,http,ruby-on-rails-4,Ruby On Rails,Http,Ruby On Rails 4,在阅读了下面的问题()之后,我遇到了一个与OP类似的问题,但提出的答案似乎并没有解决我的问题 我在对本地托管服务器的调用中(通过邮递员)定义了一个自定义头: @Igor:我实际上使用了Postman,所以我只是添加了curl代码来演示我所做的。我想最好包括一个屏幕截图: 这是我的控制器中的代码,它试图读取所述标题: def authenticate_through_header custom_header_value = request.headers['custom_header'] e
def authenticate_through_header
custom_header_value = request.headers['custom_header']
end
但是,此返回值nil
。另一方面,request.headers['HTTP\u CUSTOM\u HEADER']
返回值。根据我最初链接到的问题,我应该能够通过在括号[]中传递名称来获得值-这是在较新的Rails版本中更改的吗
干杯:-)
更新:它还可以通过以下方式访问变量:
request.headers['custom-header']
。显然,它可以用连字符替换下划线,这看起来很奇怪。是的,它在Rails 4
中发生了变化
现在,自定义变量总是在前面加上HTTP
,变量中的
被替换为-
,除了
嗯
编辑:刚刚再次选中,-
变量中的-
被替换为-
,并以HTTP
作为前缀。在上面的链接中,检查行号91-94
:
key = key.upcase.tr('-', '_')
同样的方法:例如curl-HIt很奇怪:(Rails为什么要这么做?啊..浪费了半个小时然后找到了这个。谢谢!有人知道Rails为什么从v4开始这么做吗?在我看来,这是基于快速搜索“X-My-Header”是普遍接受的头约定。为什么要打破它?还要注意,默认情况下,nginx阻止头中带有下划线。