删除Rails标头中的HTTP_前缀

时间:2014-11-14 18:11:45

标签: ruby-on-rails ruby-on-rails-4 actiondispatch

发送给Rails控制器的任何请求都会以HTTP_为前缀,因为ActionDispatch::HTTP.Headers附加了该请求。有没有办法防止这种情况(没有覆盖ActionDispatch::HTTP,以便我可以按原样使用我的自定义标头,并将其用作headers.@env的键?

1 个答案:

答案 0 :(得分:3)

不,这是不可能的。这就是ActionDispatch::Http::Headers类如何设计标准化标题。

private

def env_name(key)
  key = key.to_s
  if key =~ HTTP_HEADER
    key = key.upcase.tr('-', '_')
    key = "HTTP_" + key unless CGI_VARIABLES.include?(key)
  end
  key
end

您仍然可以使用自定义标头。您只需将其引用为HTTP_X_FOO而不是x-foo