我在某人的方法中将数组存储到 cookie:
def someone
cookies[:test] = JSON.generate [@page.image, @page.title]
end
但是我想cookie[:test]可以将更多信息存储为"<<"而不是"=",
例如(会得到错误(:
def someone
cookies[:test] << JSON.generate [@page.image, @page.title]
end
现在,cookies[:test].inspect
[[@page.image, @page.title], [@page.image, @page.title]]
.
怎么做?
我认为不可能直接附加到cookie中;它存储为字符串(JSON.generate 返回(,因此您需要反序列化,附加,然后重新序列化和存储:
current = JSON.parse cookies[:test]
current << [@page.image, @page.title]
cookies[:test] = JSON.generate current
或者更简洁一点:
cookies[:test] = (JSON.parse(cookies[:test]) + [[@page.image, @page.title]]).to_json