簡體   English   中英

Rails 3 session&cookie如何持久化會話ID cookie

[英]Rails 3 session & cookie how to persist session id cookie

我正在開發一個基於session_id的簡單購物車,即用於確定使用了session_id的用戶購物車項目。

但是當用戶關閉瀏覽器然后再次打開它時, 會話ID已被更改。 他把所有物品丟進了車里。

我懷疑我可以通過在cookie中保存會話ID來提供這樣的功能。

我對嗎?

我的問題是如何提供一種功能,允許用戶即使在關閉瀏覽器后獲取他們的購物車項目?

我建議閱讀Rails指南:Action Controller Overview( 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 }
cookies[:your_cookie] = {
    :value => "your_cookie_value",
    :expires => 100.years.from_now
}

有關詳細信息, 請查看

Rails默認將會話存儲在cookie中。 您可以影響cookie是否超出瀏覽器的重啟(見下文)。

Cookies不會在瀏覽器之間共享。 永遠。

如果您想使用Opera查看剛才在Firefox中創建的購物車,您需要以某種方式對商店進行身份驗證,例如使用用戶名和密碼。

有關會話的所有配置選項的說明,請參閱Rails 3其他會話配置選項(key,expires_after,secure)

你會想看看:expire_after,例如

:expire_after => 24.hours

(在此處找到: 在Rails 3中設置會話超時

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM