我正在使用设计进行身份验证。如果电子邮件已经存在,它会登录用户。如果电子邮件不存在,那么它会使用这些凭据创建一个新用户。应该只有一个提交按钮和一个用于电子邮件和密码的字段。
问问题
83 次
2 回答
1
这是可能的,因为必须在你的控制器中写条件
例如
def create
@user = @user.find_or_create_by(params[:user])
....
....
end
或者
def create
@user = User.find(params[:user])
unless @user.present?
@user = User.new(params[:user])
if @user.valid?
...
else
...
end
end
end
或 # 用于设计 - 在注册控制器中
def create
@user = User.find_by_email(params[:user][:email])
if @user.present?
sign_in(resource_name, resource)
else
if resource.save
if resource.active_for_authentication?
...
...
else
...
...
end
else
...
...
end
end
end
于 2012-10-12T08:20:38.073 回答
0
user_session
您为此创建了一个表单create
。
在服务器端的某个地方,您可以从您的create
操作中调用它。我会提出一个方法UserSession
。
if User.find_by_email(email)
# check credentials
else
# create user
end
于 2012-10-12T08:16:41.860 回答