我会从描述一个场景开始,我会接受其他方式来做这件事,但我想不出任何其他方式。知道什么时候在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