【问题标题】:Unable to retrieve hash from session无法从会话中检索哈希
【发布时间】:2015-11-24 22:05:14
【问题描述】:

我有一个哈希:

hash = {:a=>1, :b=>2}

我将它保存在会话中:

session[:hash_map] = hash

当我检索哈希时:

hash2 = session[:hash_map]

hash2 是:

{:a=>1, :b=>2}

但是 hash2[:a]hash2[:b] 返回 nil。知道为什么会这样吗?

【问题讨论】:

  • 如果你输入hash2.class会返回什么?
  • 我希望是String

标签: ruby-on-rails ruby hash session-variables


【解决方案1】:

您只能将字符串存储在会话哈希中,除非您对其进行序列化或反序列化。会话存储通常是 cookie。您可能可以使用 eval(hash2) 来获取散列 - 至少使用您发布的散列 - 如果有 lambda 或其他东西,它就不起作用。

这里详细介绍了如何进行序列化:

Can store hash in a cookie?

【讨论】:

  • 它不能解决问题。我找到了一个解决方案,但我认为这不是正确的解决方案,如果我使用 hash2["a"] 它可以代替 hash2[:a] 我不知道有什么区别
【解决方案2】:

我找到了一个解决方案,但我认为这不是正确的解决方案,如果我使用 hash2["a"] 它可以代替 hash2[:a] 我不知道有什么区别

【讨论】:

    猜你喜欢
    • 2012-01-10
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    相关资源
    最近更新 更多