我正在使用设计进行身份验证。 如果电子邮件已存在,则会将用户登录。 如果电子邮件不存在,则会使用这些凭据创建新用户。 应该只有一个提交按钮和一个电子邮件和密码字段。
答案 0 :(得分: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
或#for devise - 在注册控制器中
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
答案 1 :(得分:0)
您为user_session
创建了一个转到create
操作的表单。
在某处的服务器端,您可以通过create
操作进行调用。我会提出UserSession
的方法。
if User.find_by_email(email)
# check credentials
else
# create user
end