这是最奇怪的事情。当我昨天运行Rails WEBrick调试器时,我可以做像
这样的事情cookies[uid] = s.session_id
其中'uid'是传递的参数,其中包含用户ID,然后期望
cookies[uid]
给我回来,说:
29b93443d9ec18168a26e1ab12957b0dd0b799ff
今天,我总是回到'零'。我可以很好地阅读现有的价值观。
中列出的任何键cookies.keys
工作得很好。
是否有人对此行为有可能的解释。这非常让人抓狂,谷歌搜索还没有得出答案。
答案 0 :(得分:4)
原始提问者,这里。事实证明我可以设置这些cookie。问题是当你输入
时cookies[:key]
在调试器中,它似乎始终为您提供从浏览器中读取的cookie的值。在此期间我不知道值存储在何处,但在浏览器中检查cookie确认我的更改确实存在。有用的是,cookies [:key]返回赋值的值,因此您可能会执行类似
的操作@future_value = cookies[:key] = {
:value => 'new value',
:expires => @really_soon
}
我不知道是什么让我觉得我以前可以看到它们!
答案 1 :(得分:1)
此外,您需要使用字符串而不是符号来读取cookie,因为Rails会在您设置字符串时将键转换为字符串。
cookies[:key] = "value"
cookies[:key] # => nil
cookies['key'] # => "value"