在Rails 3.2.8中,您可以write a cookie这样:
cookies[:login] = {
:value => "XJ-122",
:expires => 1.hour.from_now
}
文档说这些是可用的选项符号:
:value
:path
:domain
:expires
:secure
:httponly
我希望:max_age
也可以作为选项使用,但也许user agent support is not widespread enough yet (?)可以保证包括它。
那么我应该如何在Rails中设置cookie Max-Age
?
答案 0 :(得分:2)
我读过the Rails source code for ActionDispatch::Cookies。如果查看how the handle_options
method is used,您会看到文档中未指定的选项都会通过。 Rails通常会非常自由地传递选项,其理念是,在某个地方,一个方法将知道如何处理剩余选项。
所以,我建议您尝试使用:max_age
选项,即使没有记录,看看会发生什么。
注意:Rails依赖于Rack to set the cookie header,因此如果由于某种原因将“Max-Age”“Set-Cookie”标题 传递给Rack但不< / strong>通过,我会问Github Rack问题跟踪器。
更新#1:至少有一个拉取请求与Max-Age
和Rack有关,但我不确定它是否相关。如果上述方法不起作用,我想您可能想在上面提到的Rack票据跟踪器上进行讨论。
更新#2:你看过Rack::Cache中间件了吗?它可能有用。