the such sources rails not could cannot bcrypt_ext ruby-on-rails ruby ruby-on-rails-4 load bcrypt

ruby-on-rails - such - could not find bcrypt 3.1 12 in any of the sources



bcrypt LoadError: no se puede cargar dicho archivo (4)

Matar el proceso de primavera y reiniciar Guard resolvió el problema para mí:

$ ps aux | grep spring

devuelto cuatro procesos de primavera:

ubuntu 11526 0.0 0.0 298748 24348 pts/1 Sl 22:08 0:00 spring server | mh03_sample_app | started 16 mins ago ubuntu 11529 0.4 0.1 531764 79204 ? Ssl 22:08 0:04 spring app | mh03_sample_app | started 16 mins ago | test mode ... ...

matar (uno por uno):

$ kill -15 11526 $ kill -15 11529 $ kill ... $ kill ...

y reiniciar:

$ bundle exec guard

Para una buena explicación, consulte el tutorial Rails de Michael Hartl https://www.railstutorial.org/book/static_pages#aside-processes

Intento configurar una función de inicio de sesión para mi aplicación Rails, recibo un mensaje de error de bcrypt cuando presiono el botón de inicio de sesión:

LoadError in SessionsController#create cannot load such file -- bcrypt

¿Alguien más está recibiendo este error? Tengo la última versión de bcrypt y estoy siguiendo exactamente lo que el tutorial me dijo que hiciera.

Modelo de usuario: pongo asteriscos alrededor de la línea donde supuestamente se encuentra el error.

class User < ActiveRecord::Base ****has_secure_password**** end

Controlador de Sesiones:

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:

class ApplicationController < ActionController::Base protect_from_forgery with: :exception include SessionsHelper end

SessionsHelper:

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

Gemfile:

gem ''bcrypt'', ''~> 3.1.7''

Sesiones / nueva Vista:

<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>


Si ha ejecutado: bundle install para instalar bcrypt, simplemente reinicie el servidor de rails. Funcionó para mí


Tuve el mismo problema, pero no pude resolverlo hasta que edité el archivo Gemfile y sin comentar la línea

gem ''bcrypt'', ''~> 3.1.7''

Inicialmente instalé la versión 3.1.7 porque me preocupaba que hubiera problemas de compatibilidad con las versiones posteriores, en base a algo que leí en otra solución a este problema, pero 3.1.7 también falló con otro mensaje de error. Sin embargo, 3.1.11 funcionó a la perfección, así que aumenté el comentario en el Gemfile para leer

gem ''bcrypt'', ''~> 3.1.11

y ejecuté la instalación del paquete nuevamente. Esto funcionó.


asegúrese de no solo ejecutar la instalación del paquete, sino también de matar el servidor y volver a cargarlo para asegurarse de que se carga en las nuevas gemas. también puedes consultar tu gemfile para ''spring''. si eso también está cargado, querrá comentarlo, vuelva a cargar el servidor y pruébelo entonces. eso debería ocuparse de todas las posibilidades.