我试图为我的Rails应用程序设置一个登录函数,当我按下登录按钮时,我会得到一个bcrypt错误消息:
LoadError in SessionsController#create
cannot load such file -- bcrypt还有人收到这个错误吗?我有最新版本的bcrypt,我正在遵循教程告诉我做的事情。
用户模型:我把星号放在据称错误所在的线上。
class User < ActiveRecord::Base
****has_secure_password****
end会议主计长:
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
endApplicationController:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
include SessionsHelper
endSessionsHelper:
module SessionsHelper
def log_in(user)
session[:user_id] = user.id
end
endGemfile:
gem 'bcrypt', '~> 3.1.7'会议/新观点:
<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>发布于 2015-01-04 06:08:59
在运行bundle install以安装bcrypt之后,只是重新启动rails服务器。
这将帮助应用程序重新加载并获取新安装的bcrypt依赖项。
发布于 2015-10-19 22:01:19
确保您不仅运行bundle安装,而且还关闭服务器并重新加载它,以确保它随后加载到新的gems中。您也可以检查您的宝石文件'spring‘。如果这也是加载的,你会想要注释掉,重新加载服务器,然后尝试它。这应该能照顾到一切可能性。
发布于 2016-12-19 22:53:45
我也有同样的问题,但直到我编辑了Gemfile文件,并取消了行的注释,才能解决它。
gem 'bcrypt', '~> 3.1.7' 我最初安装3.1.7版本是因为我担心是否会出现与后来版本的兼容性问题,这是基于我在另一个解决方案中看到的问题,但是3.1.7也在另一个错误消息中失败了。但是,3.1.11工作得很好,所以我在Gemfile中添加了这个注释来读取
gem 'bcrypt', '~> 3.1.11并再次运行bundle安装。这个成功了。
https://stackoverflow.com/questions/26553696
复制相似问题