В чем разница между `[] =` и `add` для заголовков HTTP :: Server :: Response #? - PullRequest
0 голосов
/ 09 июня 2018

Я посмотрел исходный код для []= и .add при добавлении / манипулировании заголовками .Я все еще не понимаю причину, по которой есть два способа добавить / установить заголовки.Каковы различия между этими двумя методами?

1 Ответ

0 голосов
/ 10 июня 2018

[]= заменяет все содержимое ключа заголовка новым массивом значений

puts response.headers["Accept-Language"] # => ["de"]
response.headers["Accept-Language"] = "de-CH" # or ["de-CH"]
puts response.headers["Accept-Language"] # => ["de-CH"]

.add проверяет, существует ли ключ заголовка, и добавляет значение:

puts response.headers["Accept-Language"] # => ["de"]
response.headers.add "Accept-Language", "de-CH"
puts response.headers["Accept-Language"] # => ["de", "de-CH"]
...