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