ruby-on-rails - bcrypt 加载错误 : Cannot load such file

标签 ruby-on-rails ruby ruby-on-rails-4 load bcrypt

我正在尝试为我的 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/

相关文章:

ruby - 将字符串的每个字符显示为下划线,每个下划线 ruby​​ 之间有一个空格

ruby-on-rails - Active Admin 类型错误 - Ruby on Rails

ruby-on-rails - 可以生成支架将 Controller 放在命名空间中吗?

mysql - 错误 : Failed to build gem native extension - Error installing mysql2

ruby-on-rails - 如何向对象添加新属性?

ruby-on-rails - 使用backbone.validation测试 Backbone 模型验证 - spy 永远不会被调用

ruby-on-rails - 使用管理命名空间时未初始化常量 BaseController 错误

php - Ruby 命令未在 PHP shell_exec 函数中执行

ruby-on-rails - 如何记住用户登录的组织?在组织之间切换

html - 如何使用 ERB 将类添加到选择下拉循环