[RUBY] Lösen Sie LoadError (kann eine solche Datei --bcrypt nicht laden), die im Rails-Test auftritt (Rails-Tutorial, Kapitel 6).

Behalten Sie alle Fehler im Auge, die im Verlauf des Schienen-Tutorials auftreten. Die Hardware verwendet MacBook Air und die Entwicklungsumgebung verwendet VScode.

Rails Tutorial Kapitel 6 6.3 Hinzufügen eines sicheren Passworts

Synopsis, bis ein Fehler von LoadError auftritt (solche Datei kann nicht geladen werden --bcrypt)

Generieren Sie eine Migrationsdatei mit dem Namen add_password_digest_to_users und führen Sie die Migration für die Datenbank durch.

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

Schreiben Sie bcrypt in die Gemfile und führen Sie die $ bundle-Installation aus.

Gemfile


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

Fügen Sie als Nächstes has_secure_password im Benutzermodell hinzu.

app/models/user.rb


class User < ApplicationRecord
  ~Kürzung~
  has_secure_password
end

Hier

$ rails test

Wenn Sie ausführen, sollte die durch has_secure_password hinzugefügte Validierung einen Fehler verursachen.

Ich habe jedoch den folgenden Fehler erhalten:

$ rails test
LoadError: cannot load such file -- bcrypt
~ Abkürzung ~

Als Test, wenn ich die Rails-Konsole starte und User.new ausführe, ...

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

Die bcrypt, die hätte installiert werden sollen, wird überhaupt nicht geladen ... (weint)

[Rails] "kann solche Datei nicht laden --bcrypt_ext" Fehlerunterstützung bei der Installation von bcrypt [Windows]

Wenn diese Lösung die beste zu sein scheint, sie aber überhaupt nicht löst, versuchen Sie die folgende Lösung.

Lösungsupdate Ruby

Zuerst,

$ rbenv versions

Überprüfen Sie die Ruby-Version mit. Dann deinstallieren Sie das Ruby Simasu

$rbenv deinstallieren Bestätigte Version

Geben Sie dann die neue Version an und installieren Sie sie. (Hier 2.6.5)

$ rbenv install 2.6.5

Gehen Sie nach Abschluss der Installation wie folgt vor:

$ rbenv global 2.6.5
$ rbenv rehash

Dies sollte die Ruby-Version ändern. (Überprüfen Sie mit $ ruby -v)

Referenz: Verwendung und Funktionsweise von rbenv

Zum Schluss ändern / überprüfen Sie den Inhalt der Gemfile.

source 'https://rubygems.org'

ruby '2.6.5'← Nachtrag
gem 'bcrypt'← Sie müssen die Version nicht angeben (bcrypt)-Ich brauche kein Ruby oder MacOS)

▲ Geben Sie hier die Ruby-Version an und beschreiben Sie bcrypt, damit die neueste Version ohne Angabe der Version installiert werden kann.

$ gem list bcrypt Wenn bcrypt enthalten ist, $ gem uninstall bcrypt) Um es zu löschen.

Führen Sie eine Bundle-Installation durch, um bcrypt zu installieren.

$ bundle install

Wenn Sie dann die $ Rails-Konsole ausführen, wird WARNING behoben und ** der Fehler wird erfolgreich behoben. ** **.


Wenn es hilft ** Ich wäre Ihnen dankbar, wenn Sie auf die LGTM-Schaltfläche klicken könnten. ** **. Lassen Sie uns unser Bestes geben, um gemeinsam Rails zu lernen! : raise_hand_tone1:

Recommended Posts

Lösen Sie LoadError (kann eine solche Datei --bcrypt nicht laden), die im Rails-Test auftritt (Rails-Tutorial, Kapitel 6).
Wenn Sie LoadError erhalten (kann eine solche Datei --ruby_file nicht laden), wenn Sie dies in Ruby benötigen
So beheben Sie Fehler, die beim Integrationstest "Ruby on Rails" auftreten
Ich kann nicht bereitstellen! Beheben Sie einen Fehler, der nicht auf Heroku übertragen werden kann (Rails Tutorial Kapitel 1).
Schienen-Tutorial Kapitel 6
Rails Tutorial Test
Schienen-Tutorial Kapitel 1
Schienen-Tutorial Kapitel 7
Schienen-Tutorial Kapitel 5
Schienen-Tutorial Kapitel 9
Schienen-Tutorial Kapitel 8
Beheben Sie Gem :: FilePermissionError, wenn Sie Gem Install Rails ausführen (Rails Tutorial Kapitel 1).