我正在构建一个示例应用程序,我已经到了一个点,我正在尝试创建一个模拟购物车。当按下添加到购物车按钮时,我可以成功地将值存储在cookie(产品ID)中,但我不确定这是否是正确的方法?我正在使用的产品列表来自目录API调用,我没有将它们存储到我自己的数据库中。所以我的想法是在按下按钮时将产品ID存储在cookie中,然后从API中找到与产品代码相关的其他相关数据,并将其放入购物车行。
cookies[:get_prod_id] = @prod_id
将使用
session[:get_prod_id] = @prod_id
好吗?我为会话设置了CookieStore,当我加载应用程序时,我发现有一个_myapp_sessions cookie,但我对如何从该cookie中获取ID感到困惑
答案 0 :(得分:0)
Cookies始终存储在客户端计算机上。存储session信息的位置取决于应用的配置。例如,要存储数据库,请在config / initializers / session_store.rb中设置它:
YourApp::Application.config.session_store :active_record_store
运行rails g active_record:session_migration
创建表格,然后重新启动服务器。
如果您使用默认的::cookie_store,则会对内容进行签名,以使其无法被篡改。这意味着可以通过为其用户ID设置cookie来识别用户。使用常规cookie执行此操作可以使其成为另一个用户。仅对常规cookie使用非特定于当前会话的不敏感信息,例如用户选择的语言:
cookie[:lang] = 'en-US'