无法从会话中检索哈希
Unable to retrieve hash from session
我有一个散列:
hash = {:a=>1, :b=>2}
我保存在会话中:
session[:hash_map] = hash
当我检索哈希时:
hash2 = session[:hash_map]
hash2
是:
{:a=>1, :b=>2}
但 hash2[:a]
和 hash2[:b]
return nil
。知道为什么会这样吗?
您只能将字符串存储在会话哈希中,除非您对其进行序列化或反序列化。会话存储通常是 cookie。您可能可以使用 eval(hash2) 来获取散列 - 至少使用您发布的散列 - 如果有 lambda 或其他它不会工作。
这里详细介绍了如何序列化的想法:
Can store hash in a cookie?
我找到了解决方案,但我认为如果我使用 hash2["a"] 是正确的解决方案,它可以代替 hash2[:a] 我不知道有什么区别
我有一个散列:
hash = {:a=>1, :b=>2}
我保存在会话中:
session[:hash_map] = hash
当我检索哈希时:
hash2 = session[:hash_map]
hash2
是:
{:a=>1, :b=>2}
但 hash2[:a]
和 hash2[:b]
return nil
。知道为什么会这样吗?
您只能将字符串存储在会话哈希中,除非您对其进行序列化或反序列化。会话存储通常是 cookie。您可能可以使用 eval(hash2) 来获取散列 - 至少使用您发布的散列 - 如果有 lambda 或其他它不会工作。
这里详细介绍了如何序列化的想法:
Can store hash in a cookie?
我找到了解决方案,但我认为如果我使用 hash2["a"] 是正确的解决方案,它可以代替 hash2[:a] 我不知道有什么区别