Anyone know if I can put a hash in the cookie? Something like this: cookies [: test] = {: top => 5,: middle => 3,: bottom => 1}
Thanks
With Rails 4.1 I had to use the parentheses like this. Without that it gave an error.
cookies[:test] = JSON.generate({a: 1, b: "2", hello: "world"})
I woud look into serializing the hash to store it. Then deserialize it to retrieve it.
When you serialize a hash, the result will be an encoded string. This string can be decoded to get the original object back.
You could use YAML or JSON for this. Both are nicely supported in Ruby.
A YAML example
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"}
A JSON example
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"}
Note: when using JSON.parse
, the resulting object will have string-based keys
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With