Ruby on rails Rails用户无法注册,因为电子邮件已存在

Ruby on rails Rails用户无法注册,因为电子邮件已存在,ruby-on-rails,controller,Ruby On Rails,Controller,您好,我正在尝试修复我的用户注册,因此,如果用户已使用相同的电子邮件在该网站注册,他们将无法注册。到目前为止,这是我试图实现的控制器中的代码 用户控制器 class UsersController < ApplicationController def create unless User.exists?(:email => params[:email]) @user = User.new(user_params) if @user.save

您好,我正在尝试修复我的用户注册,因此,如果用户已使用相同的电子邮件在该网站注册,他们将无法注册。到目前为止,这是我试图实现的控制器中的代码

用户控制器

class UsersController < ApplicationController
  def create
    unless User.exists?(:email => params[:email])

    @user = User.new(user_params)
      if @user.save
        @user.cart = Cart.create
        @user.save
        session[:user_id] = @user.id
        redirect_to @user
      else
        render 'new'
      end
    end
  end
class UsersControllerparams[:email])
@user=user.new(用户参数)
如果@user.save
@user.cart=cart.create
@user.save
会话[:user\u id]=@user.id
将_重定向到@user
其他的
呈现“新”
结束
结束
结束

我想,在用户控制器中,我会有一个除非条件,因此,如果用户已经存在,它将阻止该用户注册并再次呈现新页面。但是,用户仍然可以注册。任何关于如何正确地做到这一点的想法都会很有帮助

将验证移到用户模型,并添加以下行,而不是在控制器中验证:

validates :email, uniqueness: true