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.
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.
$ 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)
Si cette solution semble être la meilleure, mais qu'elle ne la résout pas du tout ..., essayez la solution suivante.
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