Spec-Zone.ru › Ruby on Rails 6.1

класс ActionDispatch::Http::Headers

Родитель:
Объект
Включённые модули:
Enumerable

Обеспечивает доступ к HTTP-заголовкам запроса из среды.

env     = { "CONTENT_TYPE" => "text/plain", "HTTP_USER_AGENT" => "curl/7.43.0" }
headers = ActionDispatch::Http::Headers.from_hash(env)
headers["Content-Type"] # => "text/plain"
headers["User-Agent"] # => "curl/7.43.0"

Также обратите внимание, что когда заголовки отображаются в переменные, похожие на CGI, сервер Rack преобразует тире и подчёркивания в подчёркивания. Эта неоднозначность больше не может быть разрешена на этом этапе. И подчёркивания, и тире должны интерпретироваться так, как будто они изначально были отправлены как тире.

# GET / HTTP/1.1
# ...
# User-Agent: curl/7.43.0
# X_Custom_Header: token

headers["X_Custom_Header"] # => nil
headers["X-Custom-Header"] # => "token"

Константы

CGI_VARIABLES
HTTP_ЗАГОЛОВОК

Публичные методы класса

from_hash(hash) Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 50
def self.from_hash(hash)
  new ActionDispatch::Request.new hash
end

Публичные методы экземпляра

[](key) Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 59
def [](key)
  @req.get_header env_name(key)
end

Возвращает значение для заданного ключа, сопоставленного с @env.

[]=(key, value) Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 64
def []=(key, value)
  @req.set_header env_name(key), value
end

Устанавливает заданное значение для ключа, сопоставленного с @env.

add(key, value) Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 69
def add(key, value)
  @req.add_header env_name(key), value
end

Добавляет значение к заголовку с несколькими значениями, например, Vary или Accept-Encoding.

each(&block) Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 95
def each(&block)
  @req.each_header(&block)
end
env() Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 116
def env; @req.env.dup; end
fetch(key, default = DEFAULT) { || ... } Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 87
def fetch(key, default = DEFAULT)
  @req.fetch_header(env_name(key)) do
    return default unless default == DEFAULT
    return yield if block_given?
    raise KeyError, key
  end
end

Возвращает значение для заданного ключа, сопоставленного с @env.

Если ключ не найден и необязательный код-блок не предоставлен, возникает исключение KeyError.

Если код-блок предоставлен, то он будет выполнен, и его результат возвращён.

содержит?(key)
Псевдоним для: key?
key?(key) Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 73
def key?(key)
  @req.has_header? env_name(key)
end
Также псевдоним для: содержит?
merge(headers_or_env) Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 101
def merge(headers_or_env)
  headers = @req.dup.headers
  headers.merge!(headers_or_env)
  headers
end

Возвращает новый экземпляр Http::Headers, содержащий содержимое headers_or_env и исходный экземпляр.

merge!(headers_or_env) Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 110
def merge!(headers_or_env)
  headers_or_env.each do |key, value|
    @req.set_header env_name(key), value
  end
end

Добавляет содержимое headers_or_env к записям исходного экземпляра; дублирующиеся ключи перезаписываются значениями из headers_or_env.

© 2004–2020 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API