Хэш cookies
вложен иначе, чем вы ожидаете: :value
вложен в :location
, :city
и :country
вложен в :value
. Вот несколько выводов irb , с которых можно начать:
[~]$ irb
>> cookies={}
=> {}
>> cookies[:location] = { :value => { :city => 'foo', :country => 'bar' } }
=> {:value=>{:city=>"foo", :country=>"bar"}}
>> cookies[:location][:value][:country]
=> "bar"
>> cookies.to_s
=> "{:location=>{:value=>{:city=>\"foo\", :country=>\"bar\"}}}"
Если вы вложите хэш, как показано ниже, вы получите ожидаемое поведение:
>> cookies[:location] = { :city => 'foo', :country => 'bar' }
=> {:city=>"foo", :country=>"bar"}
>> cookies[:location][:country]
=> "bar"