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

时间:2009-01-04 06:42:34

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

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

这样的事情
cookies[uid] = s.session_id

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

cookies[uid]

给我回来,说:

29b93443d9ec18168a26e1ab12957b0dd0b799ff

今天,我总是回到'零'。我可以很好地阅读现有的价值观。

中列出的任何键
cookies.keys

工作得很好。

是否有人对此行为有可能的解释。这非常让人抓狂,谷歌搜索还没有得出答案。

2 个答案:

答案 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"