Ruby on rails 在Rails3中,如何在没有成员资格/身份验证系统的情况下将用户搜索历史保存到数据库中?

Ruby on rails 在Rails3中,如何在没有成员资格/身份验证系统的情况下将用户搜索历史保存到数据库中?,ruby-on-rails,database,session,cookies,Ruby On Rails,Database,Session,Cookies,目前,该网站正在通过cookies存储“以前查看过的项目” 我需要更进一步,不仅要将这些项目存储在数据库中,还要保存用户最近的搜索结果,这样他们以后可以通过返回站点(cookie可以处理这个问题)来检索搜索结果,还可以通过四个字母的代码和以后的二维码来检索搜索结果 当您开始将这些未经身份验证的用户的数据写入数据库时,使用什么标识符作为区分它们的关键?在访问主页时,或者在初始搜索之后,创建实际的模型记录是否理想?您可以保存IP地址,除此之外,实际上没有办法保存特定于用户的内容 使用railsreq

目前,该网站正在通过cookies存储“以前查看过的项目”

我需要更进一步,不仅要将这些项目存储在数据库中,还要保存用户最近的搜索结果,这样他们以后可以通过返回站点(cookie可以处理这个问题)来检索搜索结果,还可以通过四个字母的代码和以后的二维码来检索搜索结果


当您开始将这些未经身份验证的用户的数据写入数据库时,使用什么标识符作为区分它们的关键?在访问主页时,或者在初始搜索之后,创建实际的模型记录是否理想?

您可以保存IP地址,除此之外,实际上没有办法保存特定于用户的内容

使用rails
request
对象。您可以通过
请求访问IP。远程\u IP


这是我能想到的唯一一件没有身份验证的特定于请求的事情。

您可以保存IP地址,除此之外,实际上没有办法保存特定于用户的内容

使用rails
request
对象。您可以通过
请求访问IP。远程\u IP


这是我所能想到的唯一一件没有身份验证的特定于请求的事情。

是的,IP就是我所想的,或者可能是IP+客户端的组合。我的另一个想法是简单地将cookie放在适当的位置(在搜索过程中创建),并创建一个数据库记录,将记录的ID分配给cookie,并以这种方式将它们绑定在一起(如果cookie已经存在,则不创建新记录等)。这不是一个坏主意,但它不会在浏览器之间工作,也不会在有人清除历史记录时工作。在这种情况下,如果他们不总是坚持,也没关系。我还意识到我可以通过将数据库外键(到cookie)作为cookie的会话ID来实现这一点,从而将两者链接起来。我的另一个想法是简单地将cookie放在适当的位置(在搜索过程中创建),并创建一个数据库记录,将记录的ID分配给cookie,并以这种方式将它们绑定在一起(如果cookie已经存在,则不创建新记录等)。这不是一个坏主意,但它不会在浏览器之间工作,也不会在有人清除历史记录时工作。在这种情况下,如果他们不总是坚持,也没关系。我还意识到我可以通过将数据库外键(到cookie)作为cookie的会话ID来实现这一点,从而将两者链接起来。