如何序列化数组或对象,然后将其保存到Cookie中?

cookies[:mydata] = serialize({
  :key1 => 'tralala',
  :key2 => 'hahaha'
})

谢谢!

最佳答案

最近出现的Rails漏洞(尤其是涉及机架的漏洞)使我怀疑最初建议的Marshal.load方法的安全性如何。

请不要使用is,因为它很危险may potentially allow remote code execution。我已将其从此答案中删除。

虽然不那么灵活,但以下内容也应适用:

初始对象:

my_object = {:k1 => 'v1', :k2 => 'v2'}

保存:
cookies[:my_data] = {
  :value => my_object.to_json,
  :expires => 4.years.from_now
}

阅读:
my_object = JSON.parse(cookies[:my_data])

09-10 09:20
查看更多