gpt4 book ai didi

ruby-on-rails - session 之间的差异 [:food] and cookies. 永久 [:food]

转载 作者:行者123 更新时间:2023-12-04 06:19:18 25 4
gpt4 key购买 nike

session[:food]="pizza"之间的区别和 cookies.permanent[:food]=pizza ?
我试图阅读 rails 文档,它说:

Rails 2 introduced a new default session storage, CookieStore. CookieStore saves the session hash directly in a cookie on the client-side.



然后我不明白,如果 session[:food] 保存在 cookie 中,那么 cookies.permanent[:food] 这样做,有什么区别?

最佳答案

如果你做 session[:food] 你使用的是传统的 Rails session :这个 session 对象通过将它存储在 中使你的值“pizza”在页面之间可用 cookies 过期 浏览器关闭时 (这意味着如果您关闭浏览器,您的 session[:food] 将被销毁)

当我们谈论永久时,我们谈论的是持久性 session ,那么是什么意思呢?

持久 session 是一个永久 cookie,即使您关闭浏览器,它仍然存在(“永远”),并且只有在您明确将其过期或将其删除时才会过期。

但是如何制作一个“永远”仍然存在的cookie?

如果我说“永远”,那是因为这是一个棘手的问题,而这样做的方法是将 cookie 设置为从现在起 20 年或 60 年后过期很长时间......就像这样:

cookies[:remember token] = { value: "pizza", expires: 20.years.from now.utc }

这种设置 future 20 年过期 cookie 的模式变得如此
常见的是 Rails 添加了一个特殊的永久方法来实现它,这样我们就可以
简单地写:
cookies.permanent[:food] = "pizza"

回答你的问题,结构上没有区别,每个都是cookie,区别只是在每个人的生命周期

希望这对你有帮助

关于ruby-on-rails - session 之间的差异 [:food] and cookies. 永久 [:food],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19877820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com