Rails-Cookies添加了一个数组

时间:2018-07-03 02:53:29

标签: ruby-on-rails arrays ruby cookies server

我通过某人方法将数组存储到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]]
怎么做?

1 个答案:

答案 0 :(得分:1)

我认为不可能直接附加到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