質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.39%

  • Ruby

    5162questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails

    5031questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Ruby on Rails 5

    75questions

cannot load such file -- bcryptと表示されてしまいます。

解決済

回答 2

投稿 2017/12/01 02:45 ・編集 2017/12/01 22:28

  • 評価
  • クリップ 0
  • VIEW 48

ninpig04

score 8

現在Ruby on Railsでアプリ開発をしているのですが、パスワードを暗号化しようとしてエラーが表示されてしまいました。

エラーの内容は以下の通りです

LoadError in PostsController#new
cannot load such file -- bcrypt

class User < ApplicationRecord

has_secure_password

validates :name, {presence: true}
validates :email, {presence: true, uniqueness: true}

Rails.root: /Users/comp/Desktop/tweet_app

Application Trace | Framework Trace | Full Trace
app/models/user.rb:3:in <class:User>' app/models/user.rb:1:in <top (required)>'
app/controllers/application_controller.rb:5:in `set_current_user' This error occurred while loading the following files:    bcrypt Request

Parameters:

None Toggle session dump Toggle env dump Response

Headers:

None x


もとのコードは次のようになります

class User < ApplicationRecord

    has_secure_password

    validates :name, {presence: true}     validates :email, {presence: true, uniqueness: true}

    def posts         return Post.where(user_id: self.id)     end

end


おそらくgemfileの中のbcryptに問題があるのではないかと思っています。gem 'bcrypt'を追加したのですが。。。 bundle installもしっかり実行しました。それでもダメだったためsudo bundle update springも実行し、ターミナルには次のように表示されました。


Fetching gem metadata from https://rubygems.org/............... Fetching gem metadata from https://rubygems.org/.. Resolving dependencies.... Using rake 12.3.0 Using concurrent-ruby 1.0.5 Using i18n 0.9.1 Using minitest 5.10.3 Using thread_safe 0.3.6 Using tzinfo 1.2.4 Fetching activesupport 5.0.3 (was 5.0.6)

Your user account isn't allowed to install to the system RubyGems.   You can cancel this installation and run:

      bundle install --path vendor/bundle

  to install the gems into ./vendor/bundle/, or you can enter your password   and install the bundled gems to RubyGems using sudo.

  Password: 

Your user account isn't allowed to install to the system RubyGems.   You can cancel this installation and run:

      bundle install --path vendor/bundle

  to install the gems into ./vendor/bundle/, or you can enter your password   and install the bundled gems to RubyGems using sudo.

  Password:  Installing activesupport 5.0.3 (was 5.0.6) Using builder 3.2.3 Using erubis 2.7.0 Using mini_portile2 2.3.0 Using nokogiri 1.8.1 Using rails-dom-testing 2.0.3 Using crass 1.0.3 Using loofah 2.1.1 Using rails-html-sanitizer 1.0.3 Fetching actionview 5.0.3 (was 5.0.6) Installing actionview 5.0.3 (was 5.0.6) Using rack 2.0.3 Using rack-test 0.6.3 Fetching actionpack 5.0.3 (was 5.0.6) Installing actionpack 5.0.3 (was 5.0.6) Using nio4r 2.1.0 Using websocket-extensions 0.1.3 Using websocket-driver 0.6.5 Fetching actioncable 5.0.3 (was 5.0.6) Installing actioncable 5.0.3 (was 5.0.6) Using globalid 0.4.1 Fetching activejob 5.0.3 (was 5.0.6) Installing activejob 5.0.3 (was 5.0.6) Using mini_mime 1.0.0 Using mail 2.7.0 Fetching actionmailer 5.0.3 (was 5.0.6) Installing actionmailer 5.0.3 (was 5.0.6) Fetching activemodel 5.0.3 (was 5.0.6) Installing activemodel 5.0.3 (was 5.0.6) Using arel 7.1.4 Fetching activerecord 5.0.3 (was 5.0.6) Installing activerecord 5.0.3 (was 5.0.6) Fetching bcrypt 3.1.11 Installing bcrypt 3.1.11 with native extensions Using bundler 1.16.0 Fetching byebug 9.0.6 (was 9.1.0) Installing byebug 9.0.6 (was 9.1.0) with native extensions Fetching coderay 1.1.2 Installing coderay 1.1.2 Fetching debug_inspector 0.0.3 Installing debug_inspector 0.0.3 with native extensions Using execjs 2.7.0 Using ffi 1.9.18 Using method_source 0.9.0 Using thor 0.20.0 Fetching railties 5.0.3 (was 5.0.6) Installing railties 5.0.3 (was 5.0.6) Fetching jquery-rails 4.2.2 (was 4.3.1) Installing jquery-rails 4.2.2 (was 4.3.1) Using rb-fsevent 0.10.2 Using rb-inotify 0.9.10 Using listen 3.0.8 Fetching pry 0.11.3 Installing pry 0.11.3 Fetching pry-rails 0.3.4 Installing pry-rails 0.3.4 Fetching puma 3.6.2 (was 3.11.0) Installing puma 3.6.2 (was 3.11.0) with native extensions Using sprockets 3.7.1 Using sprockets-rails 3.2.1 Fetching rails 5.0.3 (was 5.0.6) Installing rails 5.0.3 (was 5.0.6) Using sass-listen 4.0.0 Using sass 3.5.3 Using tilt 2.0.8 Fetching sass-rails 5.0.6 (was 5.0.7) Installing sass-rails 5.0.6 (was 5.0.7) Fetching spring 2.0.1 (was 2.0.2) Installing spring 2.0.1 (was 2.0.2) Using spring-watcher-listen 2.0.1 Using sqlite3 1.3.13 Using turbolinks-source 5.0.3 Using turbolinks 5.0.1 Fetching uglifier 3.0.4 (was 3.2.0) Installing uglifier 3.0.4 (was 3.2.0) Fetching web-console 3.4.0 (was 3.5.1) Installing web-console 3.4.0 (was 3.5.1) Bundler attempted to update spring but its version regressed from 2.0.2 to 2.0.1 Bundle updated!


その後、bundle installを実行した結果は以下の通りです

Using rake 12.3.0 Using concurrent-ruby 1.0.5 Using i18n 0.9.1 Using minitest 5.10.3 Using thread_safe 0.3.6 Using tzinfo 1.2.4 Using activesupport 5.0.3 Using builder 3.2.3 Using erubis 2.7.0 Using mini_portile2 2.3.0 Using nokogiri 1.8.1 Using rails-dom-testing 2.0.3 Using crass 1.0.3 Using loofah 2.1.1 Using rails-html-sanitizer 1.0.3 Using actionview 5.0.3 Using rack 2.0.3 Using rack-test 0.6.3 Using actionpack 5.0.3 Using nio4r 2.1.0 Using websocket-extensions 0.1.3 Using websocket-driver 0.6.5 Using actioncable 5.0.3 Using globalid 0.4.1 Using activejob 5.0.3 Using mini_mime 1.0.0 Using mail 2.7.0 Using actionmailer 5.0.3 Using activemodel 5.0.3 Using arel 7.1.4 Using activerecord 5.0.3 Using bcrypt 3.1.11 Using bundler 1.16.0 Using byebug 9.0.6 Using coderay 1.1.2 Using debug_inspector 0.0.3 Using execjs 2.7.0 Using ffi 1.9.18 Using method_source 0.9.0 Using thor 0.20.0 Using railties 5.0.3 Using jquery-rails 4.2.2 Using rb-fsevent 0.10.2 Using rb-inotify 0.9.10 Using listen 3.0.8 Using pry 0.11.3 Using pry-rails 0.3.4 Using puma 3.6.2 Using sprockets 3.7.1 Using sprockets-rails 3.2.1 Using rails 5.0.3 Using sass-listen 4.0.0 Using sass 3.5.3 Using tilt 2.0.8 Using sass-rails 5.0.6 Using spring 2.0.1 Using spring-watcher-listen 2.0.1 Using sqlite3 1.3.13 Using turbolinks-source 5.0.3 Using turbolinks 5.0.1 Using uglifier 3.0.4 Using web-console 3.4.0 Bundle complete! 14 Gemfile dependencies, 62 gems now installed.

Use bundle info [gemname] to see where a bundled gem is installed.

os:mac
Ruby 2.3.1
RoR 5.0.0

よろしくお願いします
bcrypt (3.1.11)と表示されているのでインストールはされているはずです

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

では次に,Rails と無関係に bcrypt が使えるかどうか確かめてみたいと思います。

次の結果はどうなるでしょうか。

ruby -r bcrypt -e 'p BCrypt::Password.create("hoge")'

こちらも,念のため,その Rails プロジェクトのディレクトリーでやってみてください。
また,念のため sudo ありと無しと両方試してみてください。

なんか長ったらしいデタラメな英数字列が表示されたら,インストールされた bcrypt がちゃんと働く証拠です。

投稿 2017/12/02 10:53

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

bcrypt がインストールできているかがポイントだと思うので,まずそれを確かめたいと思います。

その Rails プロジェクトのディレクトリーで

gem list bcrypt

および

sudo gem list bcrypt

をやってみてください。

どちらでやっても出てきますか?

投稿 2017/12/01 08:25

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/01 20:12

    どちらで行なってもbcrypt (3.1.11)とでてきます

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.39%

関連した質問

同じタグがついた質問を見る

  • Ruby

    5162questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails

    5031questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Ruby on Rails 5

    75questions