按域访问Rails cookie

时间:2011-08-26 19:28:59

标签: ruby-on-rails ruby cookies rubygems actionpack

我的情况是两个cookie具有相同的名称但域名略有不同(cookie1具有域example.com而cookie2具有子域包含.example.com)。

cookies[ :cookie_name ] = { :value => "test_value_cookie_1", :domain => "example.com" }
cookies[ :cookie_name ] = { :value => "test_value_cookie_2", :domain => ".example.com" }

我想检测两个cookie何时存在,但不幸的是我无法想出如何通过它自己的域访问cookie。我可以说

if cookies[ :cookie_name ].blank?

但我怎么说

if cookies[ :cookie_name, :domain => ".example.com" ].blank?

if cookies[ :cookie_name ].domain[ ".example.com" ].blank?

我正在使用“actionpack-2.3.11 / lib / action_controller / cookies”。我不明白为什么你可以像域一样设置信息,但不能访问它。

1 个答案:

答案 0 :(得分:4)

显然我想做的事是不可能的。 HTTP规范只允许通过名称访问cookie,即使它们可以通过域设置:

  

从HTTP服务器请求URL时,浏览器将匹配   针对所有Cookie的网址,如果其中任何一个匹配,则包含一行   所有匹配的cookie的名称/值对将包含在   HTTP请求。这是该行的格式:Cookie:   NAME1 = OPAQUE_STRING1; NAME2 = OPAQUE_STRING2 ......   http://curl.haxx.se/rfc/cookie_spec.html