Ruby on rails 如何在Rails中获取cookie过期时间?

Ruby on rails 如何在Rails中获取cookie过期时间?,ruby-on-rails,cookies,set,Ruby On Rails,Cookies,Set,我在这里读到: 只有名称和值被发送到服务器,因此没有其他cookie数据可用 这意味着无法获取cookie的过期日期? 因此,如果以后需要,我必须将该日期保存在数据库中?没错,只返回cookie名称和cookie值 这并不是Rails或PHP的缺点,而是通过以下方式定义的: 请注意,不会返回cookie属性。特别地, 服务器无法仅从Cookie头确定 cookie将过期,cookie对哪个主机有效,对哪个主机有效 cookie的路径是否有效,或者cookie是否使用 安全或仅HttpOnly属

我在这里读到:

只有名称和值被发送到服务器,因此没有其他cookie数据可用

这意味着无法获取cookie的过期日期? 因此,如果以后需要,我必须将该日期保存在数据库中?

没错,只返回cookie名称和cookie值

这并不是Rails或PHP的缺点,而是通过以下方式定义的:

请注意,不会返回cookie属性。特别地, 服务器无法仅从Cookie头确定 cookie将过期,cookie对哪个主机有效,对哪个主机有效 cookie的路径是否有效,或者cookie是否使用 安全或仅HttpOnly属性


虽然公认的答案是正确的,但我来到这里是因为我想确保我的应用程序设置了一个永久cookie(过期日期在遥远的将来),而不是一个正常的cookie

如果您想验证这一点(并且您不关心确切的到期日期),可以设置如下期望值(示例使用gem):

此期望将通过一次调用
cookies.permanent[:key]=“value”
而通过,但对于
cookies[:key]=“value”
,此期望将失败

它也适用于签名cookie(
cookies.permanent.signed[:key]=“value”
)。但是,请注意,签名cookie的值将根据应用程序的
密钥库
进行加密,因此您必须将期望值调整为

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

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