我会创造它是自动访问您的网站,并增加了第一喜欢的任何用户,费率的第一个项目,等等。Profile
创建应保存到数据库中,包括适当的随机和独特的字符串Profile
模型。该字符串可以作为cookie存储在客户端,稍后将用于检索您的配置文件。它应该是随机的和足够长的时间,以便您不能轻易篡改您的cookie并获取其他匿名用户的配置文件,但这不是完全可以避免的(因此请小心,您不要在匿名配置文件中存储敏感数据!)。
用户注册后,您可以将它们的Profile
与其新的User
记录相关联,并删除cookie和唯一字符串标识符。您现在可以根据他们的User
记录简单地在他们登录时检索他们的配置文件。
Profile
模型可以包含任何您想要存储的信息。
如果你想注册用户和匿名用户进行区分,您可以创建一个AnonymousProfile
模型和Profile
模型(每个不同的属性),并简单地复制了所有数据来自匿名配置文件到用户配置文件,当有人注册。
更新: 整个应用程序,你可以决定只用当用户登录信息,您可以定义一个before_filter
,抓住当前用户,且仅当有一个实际的用户登录,这样做。您使用的配置文件数据:
class ApplicationController < ActionController::Base
before_filter :fetch_user_data
def fetch_user_data
@current_user = ... # Work your magic to get current user
end
private
def current_profile
@current_user and @current_user.profile # Use profile association
end
end
某处在一个控制器动作:
if current_profile
# Do stuff with current_profile
# Only available to registered users...
end
以后可以更改如果current_profile
实施您改变主意并希望匿名配置文件对匿名用户有效。
谢谢,这听起来不错。但是,如果在用户注册之前没有将活动实际应用到网站上,该怎么办?对不起,如果这是一个愚蠢的问题,但从你的回答来看,这并不明显。 – 2009-05-27 22:11:13