rails test에서 발생하는 LoadError (cannot load such file - bcrypt) 해결하기 (Rails 튜토리얼 6 장)
3527 단어 RailsRails 튜토리얼젬루비bcrypt
하드는 MacBook Air, 개발 환경은 VScode를 사용하고 있습니다.
Rails 자습서 6장 6.3 보안 비밀번호 추가
LoadError (cannot load such file - bcrypt) 오류가 발생할 때까지의 개요
add_password_digest_to_users라는 마이그레이션 파일을 생성하고 데이터베이스에서 마이그레이션을 수행합니다.
$ rails generate migration add_password_digest_to_users password_digest:string
$ rails db:migrate
Gemfile에 bcrypt를 작성하고 $bundle install을 실행합니다.
Gemfilegem 'rails', '5.1.6'
gem 'bcrypt', '3.1.12'
$ bundle install
그런 다음 사용자 모델에 has_secure_password를 추가합니다.
app/models/user.rbclass User < ApplicationRecord
~省略~
has_secure_password
end
여기에서
$ rails test
를 실행하면 has_secure_password 에 의해 추가되는 검증에 의해 에러가 발생해야 합니다.
그러나 다음과 같은 오류가 발생했습니다.
$ rails test
LoadError: cannot load such file -- bcrypt
〜省略〜
시도하고 rails console을하고 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)
설치해야 할 bcrypt가 전혀로드되지 않습니다 ...... (울음)
【Rails】bcrypt 설치시의 "cannot load such file -- bcrypt_ext" 에러 대응 【Windows】
이 해결책이 제일 그랬지만, 아직도 전혀 해결하지 않는다,,,, 라고 하는 상황의 사람은, 다음의 해결책을 시험해 보세요.
해결 방법 Ruby 업데이트
첫째,
$ rbenv versions
에서 ruby 버전을 확인합니다.
그런 다음 그 루비를 uninstallsimasu
$ rbenv uninstall 確認したバージョン
그런 다음 새 버전을 지정하여 설치합니다. (여기에서는 2.6.5)
$ rbenv install 2.6.5
설치가 완료되면 다음을 수행합니다.
$ rbenv global 2.6.5
$ rbenv rehash
이제 루비 버전이 변경되어야합니다. ($ ruby -v에서 확인할 수 있음)
참고 : rbenv의 사용법과 구조에 대하여
마지막으로 Gemfile의 내용을 변경하고 확인합니다.
source 'https://rubygems.org'
ruby '2.6.5' ←追記
gem 'bcrypt' ←バージョンも指定しなくて良い(bcrypt-rubyとかもmacOSならいらない)
▲ 여기에서는 루비 버전을 지정하고 bcrypt를 버전 지정없이 최신 버전을 설치할 수 있도록 작성합니다.
$ gem list bcrypt
실행하고 bcrypt가 있으면,
$ gem uninstall bcrypt)
를 실행하여 삭제합니다.
bundle install을하고 bcrypt를 설치하십시오.
$ bundle install
그러면 $ rails console을 실행할 때 WARNING이 제거되고 안전 오류가 해결됩니다.
도움이 되면 꼭 LGTM 버튼을 확실히 눌러 주시면 기쁩니다.
함께 Rails 학습 노력하자!
Reference
이 문제에 관하여(rails test에서 발생하는 LoadError (cannot load such file - bcrypt) 해결하기 (Rails 튜토리얼 6 장)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gogo_tomoya/items/ec356491eb8a25718be9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ rails generate migration add_password_digest_to_users password_digest:string
$ rails db:migrate
gem 'rails', '5.1.6'
gem 'bcrypt', '3.1.12'
$ bundle install
class User < ApplicationRecord
~省略~
has_secure_password
end
$ rails test
$ rails test
LoadError: cannot load such file -- bcrypt
〜省略〜
$ 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)
첫째,
$ rbenv versions
에서 ruby 버전을 확인합니다.
그런 다음 그 루비를 uninstallsimasu
$ rbenv uninstall 確認したバージョン
그런 다음 새 버전을 지정하여 설치합니다. (여기에서는 2.6.5)
$ rbenv install 2.6.5
설치가 완료되면 다음을 수행합니다.
$ rbenv global 2.6.5
$ rbenv rehash
이제 루비 버전이 변경되어야합니다. ($ ruby -v에서 확인할 수 있음)
참고 : rbenv의 사용법과 구조에 대하여
마지막으로 Gemfile의 내용을 변경하고 확인합니다.
source 'https://rubygems.org'
ruby '2.6.5' ←追記
gem 'bcrypt' ←バージョンも指定しなくて良い(bcrypt-rubyとかもmacOSならいらない)
▲ 여기에서는 루비 버전을 지정하고 bcrypt를 버전 지정없이 최신 버전을 설치할 수 있도록 작성합니다.
$ gem list bcrypt
실행하고 bcrypt가 있으면,
$ gem uninstall bcrypt)
를 실행하여 삭제합니다.
bundle install을하고 bcrypt를 설치하십시오.
$ bundle install
그러면 $ rails console을 실행할 때 WARNING이 제거되고 안전 오류가 해결됩니다.
도움이 되면 꼭 LGTM 버튼을 확실히 눌러 주시면 기쁩니다.
함께 Rails 학습 노력하자!
Reference
이 문제에 관하여(rails test에서 발생하는 LoadError (cannot load such file - bcrypt) 해결하기 (Rails 튜토리얼 6 장)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gogo_tomoya/items/ec356491eb8a25718be9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)