代码之家  ›  专栏  ›  技术社区  ›  mike

我可以在我的rails应用程序中阅读但不能设置cookies

  •  2
  • mike  · 技术社区  · 15 年前

    这是最奇怪的事。昨天当我运行Rails的WEBrick调试器时,我可以做如下事情

    cookies[uid] = s.session_id
    

    其中“uid”是传递的参数,其中包含用户id,然后

    cookies[uid]
    

    要还给我,就说:

    29b93443d9ec18168a26e1ab12957b0dd0b799ff
    

    今天,我总是“零”回来。我可以很好地阅读现有的值。中列出的任何键

    cookies.keys
    

    好好工作。

    有人对这种行为有可能的解释吗。这让人非常恼火,谷歌的搜索还没有找到答案。

    2 回复  |  直到 15 年前
        1
  •  4
  •   MikeMike    15 年前

    原始发问者,这里。原来我可以做那些饼干。问题是当你输入

    cookies[:key]
    

    在调试器中,它似乎总是在从浏览器读取cookie时给您该cookie的值。我不知道这个值同时存储在哪里,但是在浏览器中检查cookies可以确认我的更改确实存在。有用的是,cookies[:key]返回赋值的值,因此您可以执行如下操作

    @future_value = cookies[:key] = {
                                     :value => 'new value',
                                     :expires => @really_soon
                                    }
    

    我不知道是什么让我觉得我以前可以看到他们!

        2
  •  1
  •   Nuno Costa    9 年前

    此外,您需要使用字符串而不是符号来读取cookie,因为Rails在您设置密钥时会将密钥转换为字符串。

    cookies[:key] = "value"
    cookies[:key]  # => nil
    cookies['key'] # => "value"