Rails -- cookie 添加一个数组



我在某人的方法中将数组存储到 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

最新更新