首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bcrypt LoadError:无法加载此类文件

bcrypt LoadError:无法加载此类文件
EN

Stack Overflow用户
提问于 2014-10-24 18:04:02
回答 4查看 29.4K关注 0票数 31

我试图为我的Rails应用程序设置一个登录函数,当我按下登录按钮时,我会得到一个bcrypt错误消息:

代码语言:javascript
复制
LoadError in SessionsController#create
cannot load such file -- bcrypt

还有人收到这个错误吗?我有最新版本的bcrypt,我正在遵循教程告诉我做的事情。

用户模型:我把星号放在据称错误所在的线上。

代码语言:javascript
复制
class User < ActiveRecord::Base
  ****has_secure_password****
end

会议主计长:

代码语言:javascript
复制
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

ApplicationController:

代码语言:javascript
复制
class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception
  include SessionsHelper
end

SessionsHelper:

代码语言:javascript
复制
module SessionsHelper

  def log_in(user)
    session[:user_id] = user.id
  end
end

Gemfile:

代码语言:javascript
复制
gem 'bcrypt', '~> 3.1.7'

会议/新观点:

代码语言:javascript
复制
<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>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-01-04 06:08:59

在运行bundle install以安装bcrypt之后,只是重新启动rails服务器

这将帮助应用程序重新加载并获取新安装的bcrypt依赖项。

票数 89
EN

Stack Overflow用户

发布于 2015-10-19 22:01:19

确保您不仅运行bundle安装,而且还关闭服务器并重新加载它,以确保它随后加载到新的gems中。您也可以检查您的宝石文件'spring‘。如果这也是加载的,你会想要注释掉,重新加载服务器,然后尝试它。这应该能照顾到一切可能性。

票数 11
EN

Stack Overflow用户

发布于 2016-12-19 22:53:45

我也有同样的问题,但直到我编辑了Gemfile文件,并取消了行的注释,才能解决它。

代码语言:javascript
复制
    gem 'bcrypt', '~> 3.1.7' 

我最初安装3.1.7版本是因为我担心是否会出现与后来版本的兼容性问题,这是基于我在另一个解决方案中看到的问题,但是3.1.7也在另一个错误消息中失败了。但是,3.1.11工作得很好,所以我在Gemfile中添加了这个注释来读取

代码语言:javascript
复制
    gem 'bcrypt', '~> 3.1.11

并再次运行bundle安装。这个成功了。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26553696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档