Ответ 1
Я заглядываю в сериализацию хэша для его хранения. Затем десериализуйте его, чтобы извлечь его.
Когда вы сериализуете хеш, результат будет закодированной строкой. Эта строка может быть расшифрована, чтобы вернуть исходный объект.
Для этого вы можете использовать YAML или JSON. Оба они хорошо поддерживаются в Ruby.
Пример YAML
require "yaml"
cookies[:test] = YAML::dump {a: 1, b: "2", hello: "world"}
# => "---\n:a: 1\n:b: '2'\n:hello: world\n"
YAML::load cookies[:test]
# => {a: 1, b: 2, c: "world"}
Пример JSON
require "json"
cookies[:test] = JSON.generate {a: 1, b: "2", hello: "world"}
# => '{"a":1,"b":"2","hello":"world"}'
JSON.parse cookies[:test]
# => {"a"=>1, "b"=>"2", "hello"=>"world"}
Примечание: при использовании JSON.parse
результирующий объект будет иметь строковые ключи