我正在开发一个基于session_id的简单购物车,即用于确定使用了session_id的用户购物车项目。
但是,当用户关闭浏览器然后再次打开时,会话ID 已更改。他把所有物品丢在车里。
我怀疑我可以通过在Cookie中保存会话ID 来提供此功能。
我是对的吗?
我的问题是如何提供一种功能,即使在关闭浏览器后,用户也可以获取购物车内容?
答案 0 :(得分:5)
我建议阅读Rails指南:动作控制器概述(http://guides.rubyonrails.org/action_controller_overview.html)。
第4节和第5节涵盖了会话和Cookie,可以让您更深入地了解 如何使用它们,将更容易应对未来的挑战。
我还会查看Ruby on Rails ActionDispatch :: Cookies<对象文档 (http://api.rubyonrails.org/classes/ActionDispatch/Cookies.html)
此资源中列出了您要查找的控制器代码示例。这是一个例子:
# Sets a cookie that expires in 1 hour.
cookies[:login] = { :value => "XJ-122", :expires => 1.hour.from_now }
答案 1 :(得分:3)
cookies[:your_cookie] = {
:value => "your_cookie_value",
:expires => 100.years.from_now
}
了解更多详情,check it out。
答案 2 :(得分:2)
Rails默认将会话存储在cookie中。你可以影响if cookie不会重新启动浏览器(见下文)。
Cookies不会在浏览器之间共享。永远。
如果您想使用Opera查看刚刚在Firefox中创建的购物车,您需要以某种方式对商店进行身份验证,例如使用用户名和密码。
有关会话的所有配置选项的说明,请参阅Rails 3 additional session configuration options (key, expires_after, secure)。
你会想看看:expire_after,例如
:expire_after => 24.hours