[RUBY] Résoudre LoadError (impossible de charger un tel fichier --bcrypt) qui se produit dans le test des rails (Tutoriel Rails Chapitre 6)

Gardez une trace de toutes les erreurs qui se produisent au cours de votre progression dans le didacticiel sur les rails. Le matériel utilise MacBook Air et l'environnement de développement utilise VScode.

Tutoriel Rails Chapitre 6 6.3 Ajout d'un mot de passe sécurisé

Synopsis jusqu'à ce qu'une erreur de LoadError (impossible de charger un tel fichier --bcrypt) se produit

Générez un fichier de migration appelé add_password_digest_to_users et effectuez la migration sur la base de données.

$ rails generate migration add_password_digest_to_users password_digest:string
$ rails db:migrate

Écrivez bcrypt dans le Gemfile et exécutez $ bundle install.

Gemfile


gem 'rails',          '5.1.6'
gem 'bcrypt',         '3.1.12'
$ bundle install

Ensuite, ajoutez has_secure_password dans le modèle User.

app/models/user.rb


class User < ApplicationRecord
  ~réduction~
  has_secure_password
end

ici

$ rails test

Lorsque vous exécutez, la validation ajoutée par has_secure_password devrait provoquer une erreur.

Cependant, j'ai eu l'erreur suivante:

$ rails test
LoadError: cannot load such file -- bcrypt
~ abrégé ~

À titre de test, lorsque je lance la console rails et exécute User.new, ...

$ rails console

Running via Spring preloader in process 18909
Loading development environment (Rails 5.1.7)

WARNING: This version of ruby is included in macOS for compatibility with legacy software. 
In future versions of macOS the ruby runtime will not be available by 
default, and may require you to install an additional package.

>User.new
You don't have bcrypt installed in your application. Please add it to your Gemfile and run bundle install
Traceback (most recent call last):
        3: from (irb):1
        2: from app/models/user.rb:1:in `<top (required)>'
        1: from app/models/user.rb:10:in `<class:User>'
LoadError (cannot load such file -- bcrypt)

Le bcrypt qui aurait dû être installé n'est pas du tout chargé ... (pleurant)

[Rails] "Impossible de charger un tel fichier --bcrypt_ext" Prise en charge des erreurs lors de l'installation de bcrypt [Windows]

Si cette solution semble être la meilleure, mais qu'elle ne la résout pas du tout ..., essayez la solution suivante.

Mise à jour de la solution Ruby

Premier,

$ rbenv versions

Vérifiez la version ruby avec. Puis désinstallez ce ruby simasu

$rbenv désinstaller Version confirmée

Spécifiez ensuite la nouvelle version et installez. (Ici 2.6.5)

$ rbenv install 2.6.5

Une fois l'installation terminée, procédez comme suit:

$ rbenv global 2.6.5
$ rbenv rehash

Cela devrait changer la version ruby. (Vérifiez avec $ ruby -v)

Référence: Comment utiliser et comment fonctionne rbenv

Enfin, changez / vérifiez le contenu du Gemfile.

source 'https://rubygems.org'

ruby '2.6.5'← Addendum
gem 'bcrypt'← Vous n'avez pas à spécifier la version (bcrypt)-Je n'ai pas besoin de ruby ou de macOS)

▲ Ici, spécifiez la version ruby et décrivez bcrypt afin que la dernière version puisse être installée sans spécifier la version.

$ gem list bcrypt Si bcrypt est inclus, $ gem uninstall bcrypt) Pour le supprimer.

Effectuez l'installation groupée pour installer bcrypt.

$ bundle install

Ensuite, lorsque vous exécutez $ rails console, WARNING sera résolu et ** l'erreur sera résolue. ** **


Si cela aide **, je vous serais reconnaissant de bien vouloir cliquer sur le bouton LGTM. ** ** Faisons de notre mieux pour apprendre les rails ensemble! : lift_hand_tone1:

Recommended Posts

Résoudre LoadError (impossible de charger un tel fichier --bcrypt) qui se produit dans le test des rails (Tutoriel Rails Chapitre 6)
Lorsque vous obtenez LoadError (impossible de charger un tel fichier --ruby_file) lorsque vous en avez besoin dans Ruby
Comment résoudre les erreurs qui se produisent lors du test d'intégration "Ruby on Rails"
Je ne peux pas déployer! Résoudre une erreur qui ne peut pas être poussée vers heroku (Tutoriel Rails Chapitre 1)
tutoriel rails Chapitre 6
Test du tutoriel sur les rails
tutoriel rails Chapitre 1
tutoriel rails Chapitre 7
tutoriel rails Chapitre 5
tutoriel rails Chapitre 9
tutoriel rails Chapitre 8
Résoudre Gem :: FilePermissionError lors de l'exécution de rails d'installation de gem (Tutoriel Rails Chapitre 1)