Чтение и запись параметров Sinatra с использованием символов, например. params[ :id]

Моя форма получает данные через POST. Когда я делаю puts params, я вижу:

{"id" => "123", "id2" => "456"}

теперь команды :

puts params['id']    # =>  123
puts params[:id]     # =>  123

params['id'] = '999'
puts params          # => {"id" => "999", "id2" => "456"}

, но когда я делаю :

params[:id] = '888'
puts params

, я получаю

{"id" => "999", "id2" => "456", :id => "888"}

В IRB все работает нормально:

params
# => {"id2"=>"2", "id"=>"1"}

params[:id]
# => nil

params['id']
# => "1"

Почему я могу прочитать значение, используя :id, но не установить значение, используя это?

6
задан Phrogz 30 April 2012 в 21:56
поделиться