「You don’t have bcrypt installed」というエラー
ターミナルから「rails c」でUserテーブルのレコードを確認しようとしたら以下のようなエラーが出ました。
irb(main):001:0> User.all
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 `<main>'
1: from app/models/user.rb:2:in `<class:User>'
LoadError (cannot load such file -- bcrypt)
「You don’t have bcrypt installed in your application」…?
そのエラーが出たUserモデルではパスワードを使うために、bcryptのhas_secure_passwordメソッドを記述していました…
まあ要するに「bcryptがインストールされてないのでgemファイルに記述してね遊戯ボーイ」とのことですが
# Use ActiveModel has_secure_password
gem 'bcrypt', '~> 3.1.7'
ちゃんと書いてあるしbundle installもしてあるんだよなぁ(困惑)…
バージョンとかが原因…?うーん分からない…
と色々試行錯誤してみた結果、何とか解決できたのでその対処法を以下にまとめます。
Railsの「You don’t have bcrypt installed」の解決法
解決法
step1
gemファイルで「bcrypt」のとこをコメントアウトする
step2
bundle installする
step3
コメントアウトを外す
step4
再びbundle installする
step5
ターミナルを再起動する
解決はしましたが、正直原因は謎…
ブログ主
知らない方がいいこともあるんだよ(イケボ)
まとめ
Gemfile.lockあたりが絡んできているのかなと考えたりしてますが…
で深く考えすぎないことも大事かなということでここら辺で撤退します。
参考になれば幸いです!では⸝⸝- ̫ -⸝⸝