我會從描述一個場景開始,我會接受其他方式來做這件事,但我想不出任何其他方式。知道什麼時候在Rails中啓動一個新的會話
我在Rails 2應用程序上有匿名用戶。當一位新用戶訪問該網站時,我想要放一個「我已經訪問過該網站1次」的cookie並將其記錄在我們的系統中。用戶離開並回來一個月後,我讀了這個cookie,增加了訪問次數(「我已經在這裏2次了」),並將其記錄在我們的系統中。
我的計劃:
當一個新的會話開始
- 如果用戶是新的 - 創建的cookie,記錄訪問
- 如果用戶正在恢復 - 讀取Cookie,增加值,寫cookie,日誌訪問
我現在被卡住的地方是在「新會話開始時」步驟。如果你有.net背景,我正在尋找的是ASP.NET中Session_Start的等價物。我可能查詢每個請求上的數據庫,並檢查是否已經記錄了一個特定的會話ID,但這似乎效率低下。
但是rails會隨機設置session_id,那麼如何告訴guest用戶你被訪問了2次? – Arun 2011-05-22 07:31:01
session_id在每個請求中都不是隨機的。我想知道什麼時候開始新的會議,這將是理想的。如果沒有,我將不得不將當前的session_id與記錄的會話ID列表進行比較。我寧願不這樣做。 – user140550 2011-05-22 16:02:00