Spec-Zone.ru › Ruby on Rails 8.1

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

Родительский класс:
Object
Подключённые модули:
Enumerable

Заголовки HTTP Action Dispatch Headers

Предоставляет доступ к заголовкам 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"

Также обратите внимание: когда сервер Rack сопоставляет заголовки с переменными типа CGI, и дефисы, и символы подчёркивания преобразуются в символы подчёркивания. На этом этапе устранить эту неоднозначность уже невозможно. Следует интерпретировать и символы подчёркивания, и дефисы так, как если бы изначально были переданы дефисы.

# 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_HEADER

Открытые методы класса

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

Открытые методы экземпляра

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

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

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

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

add (key, value) Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 73
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 98
def each(&block)
  @req.each_header(&block)
end
env () Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 118
def env; @req.env.dup; end
fetch (key, default = DEFAULT) { || ... } Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 90
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.

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

include? (key)
Псевдоним для: key?
key? (key) Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 77
def key?(key)
  @req.has_header? env_name(key)
end
Также имеет псевдоним: include?
merge (headers_or_env) Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 104
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 112
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–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

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