我正在尝试为我的 Rails 应用程序设置登录功能,当我按下登录按钮时,我收到一条 bcrypt 错误消息:
LoadError in SessionsController#create
cannot load such file -- bcrypt
还有其他人遇到这个错误吗?我有最新版本的 bcrypt,我完全按照教程告诉我的去做。
用户模型:我在据称错误所在的行周围加上了星号。
class User < ActiveRecord::Base
****has_secure_password****
end
session Controller :
class SessionsController < ApplicationController
def new
end
def create
user = User.find_by(id: params[session][:id])
if user && user.authenticate(params[:session][:password])
log_in user
redirect_to root_path
else
flash.now[:danger] = 'Invalid'
render 'new'
end
end
def destroy
end
end
应用程序 Controller :
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
include SessionsHelper
end
session 助手:
module SessionsHelper
def log_in(user)
session[:user_id] = user.id
end
end
gem 文件:
gem 'bcrypt', '~> 3.1.7'
session /新 View :
<div id= "admin-sign-in">
<%= form_for(:session, url: login_path) do |f| %>
<%= f.label :id %>
<%= f.text_field :id %>
<%= f.label :password %>
<%= f.password_field :password %>
<%= f.submit "Log in", class: "btn btn-primary" %>
<% end %>
</div>
最佳答案
运行bundle install
安装bcrypt
后,重启rails server即可。
这应该有助于您的应用程序重新加载并获取新安装的 bcrypt 依赖项。
关于ruby-on-rails - bcrypt 加载错误 : Cannot load such file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26553696/