1

サインアップ時にユーザーを自動的にログインさせようとしています。私の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 メソッドのコードを複製したためではないかと考えています。

助けてくれてありがとう!

4

0 に答える 0