【问题标题】:I can read but not set cookies in my rails app我可以在我的 rails 应用程序中读取但不能设置 cookie
【发布时间】:2009-01-04 06:42:34
【问题描述】:

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

cookies[uid] = s.session_id

其中 'uid' 是一个传递的参数,其中包含一个用户 ID,然后是期望

cookies[uid]

给我回馈,说:

29b93443d9ec18168a26e1ab12957b0dd0b799ff

今天,我总是返回“零”。我可以很好地读取现有值。

中列出的任何键
cookies.keys

工作正常。

有没有人对此行为有可能的解释。太让人抓狂了,谷歌搜索也没有得到答案。

【问题讨论】:

    标签: ruby-on-rails cookies variable-assignment


    【解决方案1】:

    原始提问者,在这里。事实证明,我可以设置那些 cookie。问题是当你输入

    cookies[:key]
    

    在调试器中,它似乎总是为您提供从浏览器读取的 cookie 的值。我不知道该值同时存储在哪里,但检查浏览器中的 cookie 可以确认我的更改确实存在。有用的是,cookies[:key] 返回赋值的值,所以你可以做类似的事情

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

    我不知道是什么让我认为我以前可以查看它们!

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2018-09-28
        • 2019-03-21
        • 1970-01-01
        • 2014-11-26
        • 1970-01-01
        • 2011-07-06
        • 1970-01-01
        • 2013-09-24
        • 2021-11-27
        相关资源
        最近更新 更多