Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在RubyonRails中访问自定义头变量_Ruby On Rails_Http_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 在RubyonRails中访问自定义头变量

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

在阅读了下面的问题()之后,我遇到了一个与OP类似的问题,但提出的答案似乎并没有解决我的问题

我在对本地托管服务器的调用中(通过邮递员)定义了一个自定义头:

@Igor:我实际上使用了Postman,所以我只是添加了curl代码来演示我所做的。我想最好包括一个屏幕截图:

这是我的控制器中的代码,它试图读取所述标题:

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阻止头中带有下划线。