В Sinatra я использую params для получения ключа / значения, переданного через строку запроса URL. Я заметил, что могу использовать строку или символ в качестве ключа для получения значения. Так что, если URL-адрес:
http://localhost:4567/x?a=1&b=2
Тогда:
params[:a] # => "1"
params["a"] # => "1"
params.to_s # => '{"name"=>"x", "a"=>"1", "b"=>"2"}'
params.class # => Hash
Я могу сказать, что params - это Hash. Но это не похоже на обычное поведение хэша.
h = {"a" => "1", "b" => "2"}
h["a"] # => "1"
h[:a] # => nil
Может кто-нибудь объяснить, как это достигается с помощью Синатры?