SQLite3 :: ConstraintException:UNIQUE制約が失敗しました:users.email:INSERT INTO "users"( "name"、 "email"、 "created_at"、 "updated_at"、 "password_digest") VALUES(?、?、?、?、?)UsersController#でActiveRecord :: RecordNotUniqueを作成
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モデル 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
明らかに、既存の電子メールアドレスで新しいレコードを作成しようとしていて、電子メールフィールドに固有の制約があります。この列には一意の値が必要です。 –
あなたのユーザモデルを表示できますか?エラーはあなたが一意のキー制約に違反していることを示します。オブジェクトを作成するために2つの類似したメールを使用しないでください。 –