2012-07-23 34 views

回答

5

没错,只有cookie名称cookie值被返回。

这不是轨道或PHP的一个缺点,它在RFC 6265这样定义的:

注意,不返回的cookie的属性。特别是, 服务器无法单独确定cookie标头何时会过期,cookie的有效期限为哪个主机,其中的 路径Cookie是否有效,或者cookie是否使用安全或HttpOnly属性设置为 。

0

虽然接受的答案是正确的,我来到这里是因为我想确保我的应用程序设置一个永久饼干(在遥远的未来一个截止日期),而不是一个正常的。

如果您想验证是这种情况(和你不关心确切的截止日期),你可以设置一个这样的预期(该示例使用Mocha宝石):

ActionDispatch::Cookies::PermanentCookieJar.any_instance.expects(:[]=).with(:key, "value").once 

这个期望会通过一个cookies.permanent[:key] = "value"的呼叫,但会失败cookies[:key] = "value"

它也适用于签名饼干(cookies.permanent.signed[:key] = "value")。但是,请注意,签署cookie将有它的价值加密基于应用程序的secret_key_base,所以你必须将预期调整到类似

ActionDispatch::Cookies::PermanentCookieJar.any_instance.expects(:[]=).with(:key, anything).once 

代替。