サインアップ時にユーザーを自動的にログインさせようとしています。私のUser.rbには
def authenticate(password)
self.hashed_password ==
BCrypt::Engine.hash_secret(password, self.salt)
end
private
def hash_password
if password.present?
self.salt = BCrypt::Engine.generate_salt
self.hashed_password =
BCrypt::Engine.hash_secret(password, self.salt)
password = password_confirmation = nil
end
end
私のUsersController.rbには
def create
user = User.create(params[:user].permit(:first_name, :last_name, :email, :password, :password_confirmation))
puts "8 " * 100
puts params[:user][:password]
if user.authenticate(params[:user][:password])
session[:user_id] = user.id
redirect_to user_path(user)
else
flash.now.alert = "Unable to sign you in. Please try again."
render :new
end
end
私が得るエラーは無効な塩です
提供する情報が不足していますか? また、authenticationscontroller から users コントローラーの create メソッドのコードを複製したためではないかと考えています。
助けてくれてありがとう!