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.