2012-03-03 63 views
0

在我的应用程序中,我目前有能力创建一个用户,然后 开始一个会话并向电子邮件地址发送电子邮件确认。虽然这一切都很好,但我希望让它更进一步 。在创建之前确认用户

我希望做的是有创建的用户的能力,然后 的电子邮件被发送,要求用户通过电子邮件来验证。 一旦他们点击电子邮件,然后在用户注册到 数据库的确认链接,然后能够登录。我想这个链接去创建功能。

我怎么会去这样做呢?

如果需要我当前的代码,然后我可以提供。

我有这在我的控制器/创建的时刻:

DEF创建 @user = User.new(PARAMS [:用户])

respond_to do |format| 
    if @user.save 
    Notifier.user_created(@user).deliver 
    session[:user_id] = @user.id 
    format.html { redirect_to @user, notice: 'User was successfully created.' } 
    format.json { render json: @user, status: :created, location: @user } 
    else 
    format.html { render action: "new" } 
    format.json { render json: @user.errors, status: :unprocessable_entity } 
    end 
end 
end 

感谢。

回答

4

等待用户保存到数据库中是做的无状态的方式。然而,该网站在运作,这并不意味着它不能做一个几乎不可能的事情。

我建议你在你的user表中使用额外的领域,被称为像confirmed。有它初始化为false,然后还要确认表简单地查找用户和更改confirmed为true。

这将允许你快速判断一个用户已经确认自己和你可以用它来制作像他们是否被允许登录的决定。

在人们而言谁没有确认themeselves,你写一个每5天左右运行一次的rake任务,并使用诸如resque_scheduler或cron job之类的东西删除尚未确认自己的用户。

希望这是一个开始新的解决方案。

+0

欢呼声中,我在使用类似的设备不感兴趣,宁愿从头开始做。你有什么链接可以告诉我如何做可确认的功能吗?我是rails新手,因此对认证方面知之甚少。 – user1222136 2012-03-03 20:25:36