SQLite3 :: ConstraintException: UNIQUE Constraint fehlgeschlagen: users.email: INSERT INTO "Benutzer" ("Name", "E-Mail", "erstellt", "aktualisiert", "password_digest") VALUES (?,?,?,?,?)ActiveRecord :: RecordNotUnique in UsersController # erstellen
def create
@user = User.new(user_params)
if @user.save #red line here
else
render 'new'
users_controller.rb
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
# Handle a successful save.
else
render 'new'
end
end
private
def user_params
params.require(:user).permit(:name, :email, :password,
:password_confirmation)
end
end
User-Modell user.rb
class User < ApplicationRecord
before_save { self.email = email.downcase }
validates :name, presence: true, length: { maximum: 50 }
VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i
validates :email, presence: true, length: { maximum: 255 },
format: { with: VALID_EMAIL_REGEX }
has_secure_password
validates :password, presence: true, length: { minimum: 6 }
end
enter code here
Anscheinend versuchen Sie, einen neuen Datensatz mit einer vorhandenen E-Mail-Adresse zu erstellen, und das E-Mail-Feld hat eine eindeutige Einschränkung. Dies bedeutet, dass diese Spalte eindeutige Werte haben muss. –
Können Sie Ihr Benutzermodell zeigen, der Fehler zeigt an, dass Sie gegen eindeutige Schlüsseleinschränkungen verstoßen haben, verwenden Sie bitte nicht 2 ähnliche E-Mails zum Erstellen eines Objekts. –