2016-04-07 5 views
1

Hallo Ich versuche, meine Benutzeranmeldung zu beheben, also wenn ein Benutzer bereits mit der gleichen E-Mail-Adresse registriert ist, können sie sich nicht anmelden. Bis jetzt ist das der Code in meinem Controller, den ich versuche zu implementieren.Rails Benutzer kann nicht anmelden, ist E-Mail bereits vorhanden

Benutzer Controller

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 

Ich dachte, in den Benutzer-Controller ein, es sei denn bedingt, dass ich so würde, wenn ein Benutzer bereits vorhanden ist es, dass Benutzer von der Anmeldung verhindern würde und nur die neue Seite macht wieder. Der Benutzer kann sich jedoch trotzdem anmelden. Irgendwelche Ideen, wie man das richtig macht, würden wirklich helfen.

Antwort

2

Statt diese in Ihrem Controller der Validierung, bewegen Sie die Validierung der Benutzermodell und fügen Sie diese Zeile:

validates :email, uniqueness: true 
Verwandte Themen