Кто-нибудь знает, могу ли я поставить хэш в cookie? Что-то вроде этого: печенье [: тест] = {: верх => 5 ,: средний => 3 ,: Дно => 1}Может хранить хэш в cookie?
Благодаря
Кто-нибудь знает, могу ли я поставить хэш в cookie? Что-то вроде этого: печенье [: тест] = {: верх => 5 ,: средний => 3 ,: Дно => 1}Может хранить хэш в cookie?
Благодаря
Я woud посмотреть в сериализации хэша для его хранения. Затем десериализуйте его, чтобы извлечь его.
Когда вы сериализуете хэш, результатом будет закодированная строка. Эта строка может быть расшифрована, чтобы вернуть исходный объект.
Для этого вы можете использовать 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
, результирующий объект будет иметь строка на основе ключей
Существует несколько способов, которыми это возможно (т. сохранение строки и eval
с использованием этого значения, SCARY!). Это простой способ.
cookies[:test_top] = 5
cookies[:test_middle] = 3
cookies[:test_bottom] = 1
Вы также можете преобразовать в JSON, а затем проанализировать его при загрузке файла cookie.
Новые версии Rails включают автоматическую сериализацию с использованием объекта сеанса.
С Rails 4.1 мне пришлось использовать круглые скобки, подобные этому. Без этого он допустил ошибку.
cookies[:test] = JSON.generate({a: 1, b: "2", hello: "world"})
Я не думаю, что вам нужны фигурные скобки. – justingordon
Я попробую этот путь и посмотрю, работает ли он на меня, большое спасибо –
работал отлично! Спасибо и поздравляем –
Это не работает для меня вообще :(Я получаю жалобы на символ «:» («синтаксическая ошибка, неожиданная»: «, ожидающая») ». Любые идеи, почему? Я пробовал оба ваши предложения YAML и JSON, но оба жалуются на ту же проблему. – justinraczak