如何序列化数组或对象,然后将其保存到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])