在我的应用程序中,我目前能够创建一个用户 然后开始会话并向电子邮件发送电子邮件确认 地址。虽然这一切都很好,但我希望能多一点 先进。
我想做的是拥有创建用户的能力然后 发送的电子邮件需要用户通过电子邮件进行验证。 一旦他们点击电子邮件中的确认链接,用户就会注册到 数据库,然后能够登录。我希望此链接转到创建功能。
我将如何这样做?
如果需要我当前的代码,那么我可以提供。
我现在在控制器/创建中有这个:
def创建 @user = User.new(params [:user])
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
感谢。
答案 0 :(得分:4)
等待将用户保存到数据库与Web操作的无状态方式几乎是不可能的,但是,这并不意味着无法完成。
我建议在用户表中使用额外的字段,称为confirmed
。将其初始化为false
,然后让确认表单只需查找用户并将confirmed
更改为true。
这将允许您快速判断用户是否已确认自己,并且您可以使用它来做出是否允许他们登录等决策。
对于从不确认自己的人,你会编写一个每5天左右运行一次的rake任务,只需删除任何尚未确认的用户,使用resque_scheduler或cron job。
希望这是您解决方案的开始。