Если вы посмотрите на реализацию заголовка запроса Rails, вы увидите, что имя заголовка сначала «очищается», передавая его объекту Rack::Request::Env
- https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/http/headers.rb#L122
# Converts an HTTP header name to an environment variable name if it is
# not contained within the headers hash.
def env_name(key)
key = key.to_s
if HTTP_HEADER.match?(key)
key = key.upcase.tr("-", "_")
key = "HTTP_" + key unless CGI_VARIABLES.include?(key)
end
key
end
Railsбудет upcase
имя заголовка для вас, а также преобразует -
в _
и добавит HTTP_
при необходимости.
Принимая это во внимание:
request.headers["HTTP_X_APPENGINE_COUNTRY"]
- я бы избежал этого, так как Rails будет использовать HTTP_
.
request.headers["X_APPENGINE_COUNTRY"]
- Я не вижу ничего плохогос использованием этого.
request.headers["X-AppEngine-Country"]
- Это тот, который я выбрал бы, так как имя заголовка в оригинальном формате.
Приветствия!