問題タブ [bcrypt-ruby]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - NameError 例外: 初期化されていない定数 BCrypt Rails 5、Windows
on で使用Devise
しています。私は問題について知っており、それを機能させるためにインターネットからの指示に従っています:Rails 5
Windows
Windows
BCrypt
- すべての bcrypt gem バージョンをアンインストールし
gem uninstall bcrypt
、オプション 3 (存在する場合) を選択します。 gem uninstall bcrypt-ruby
オプション 3 を選択します (存在する場合)。- を使用して bcrypt をインストールし
gem install bcrypt --platform=ruby
ます。 - この行
gem 'bcrypt', platforms: :ruby
を Gemfile に追加します。
Devise
に依存しBCrypt
、正常に動作するため、機能すると思いDevise
ます。
問題はByebug
、コンソールBCrypt
で使用して使用すると、エラーが発生することです。
NameError 例外: 初期化されていない定数 users::PasswordsController::BCrypt
これがその場所ですbyebug
:
から継承するコントローラーにありDevise::PasswordsController
、ビューを表示するだけです。
たとえば、次のように入力するとBCrypt::Engine.generate_salt
、そのエラーが発生します。
ruby-on-rails - Rails での bcrypt LoadError
この問題の解決策を見つけるのに苦労しており、他の人が遭遇した多くの修正を試みましたが、成功しませんでした. 私は、has_secure_password
機能を実装するために bcrypt を使用する必要がある Michael Hartl による Ruby on Rails 5 チュートリアルに取り組んでいます。テストを実行すると、次のような長いエラー メッセージが表示されます。
--platform=ruby
最後に追加し、gemfile にさまざまなバージョンを含めて、bcrypt のアンインストールと再インストールを試みました。gem 'bcrypt', '~> 3.1.7'
、コマンド ラインから gem ファイルをインストールするさまざまな組み合わせを含みます'bcrypt', '3.1.11', platforms: [:ruby, :x64_mingw]
。'bcrypt', '~> 3.1.7', platforms: [:ruby]
コンソールからのインストール中に gemfile をハッシュ化したままにして、gemfile リンクのみを使用して Bundle Install をアンインストールおよび実行します。
これは、Rails コンソールにアクセスしようとしたときに表示されるエラー メッセージ全体です。
Windows 7x64 で動作する Rails バージョン 5.1.4 で Ruby バージョン 2.3.3 を使用しています。
この時点で誰かが私に提供できる洞察をいただければ幸いです。
アップデート
そのため、gemfile を使用して問題を解決しようと数え切れないほどの時間を費やした後:
私にとって問題を解決したものでした。これは恒久的な解決策ではないかもしれませんが、少なくとも前に進むことができます!
ruby-on-rails - BCrypt がハッシュを受け入れなくなったのはなぜですか?
先週、Fedora を最新の 28 リリースにアップグレードしました。これには、mongodb の 3.6 へのアップグレードが含まれています。Fedora 28 へのアップグレード後に mongodb サービスを修復する方法を参照してください。mongodが起動しなくなるという最初の問題をどのように解決したかについて。現在、この同じデータベースを使用する Rails アプリケーションで別の問題に直面しています。
これはおそらくmongodbのアップグレードとは関係ありませんが、そのコンテキストを提供する価値があると思い、十分な提供がない場合の解決策を見逃さないでください.
したがって、システムのアップグレードにより、この Rails プロジェクトにログインしようとすると、initialize'`で発生するBCrypt::Errors::InvalidHash in Devise::SessionsController#create
エラーで失敗します。bcrypt (3.1.11) lib/bcrypt/password.rb:60:in
プロジェクトのRailsコンソールでさらに分析すると、このメソッドへの呼び出しは失敗するようです:
bundle
をアンインストール/再インストールしようとしましbcrypt
たが、代わりに bcrypt gem の github リポジトリ バージョンを使用しましたが、何も変わりませんでした。
initialize'`を見ると/home/psychoslave/.rbenv/versions/2.4.3/lib/ruby/gems/2.4.0/gems/bcrypt-3.1.11/lib/bcrypt/password.rb:60:in
、問題はハッシュが有効ではないようです。
対応するテストは次のとおりです。
ハッシュ自体はBCrypt::Engine.hash_secret(secret, BCrypt::Engine.generate_salt(cost))
、プラットフォームで call を使用して作成され、 bcrypt-3.1.11/ext/mri/bcrypt_ext.c__bc_crypt(secret.to_s, salt)
を呼び出しているようです。
さらに重要なことbinding.pry
に、valid_hash?
メソッドに a を追加すると、 への呼び出しに対して返されたハッシュ値を確認できますBCrypt::Password.create('TestPassword')
。実際には、開始が通常のように見えるかなり長い文字列ですが、誤って生成された可能性が最も高いシーケンスで終了します。
興味があれば、ハッシュ全体のダンプを提供できます (約 32Ko!)。
ruby-on-rails - 読み込みエラー:bcrypt
ROR プラットフォームを使用して管理パネルを作成しました。ログインしようとするたびに、次のエラーが発生します。
そのようなファイル bcrypt_ext を読み込めません
過去にこのエラーに遭遇しましたが、以下の手順を使用してアンインストールして再インストールすることで修正していました。
- すべてのレールサーバーをシャットダウンします
- bcrypt のすべてのバージョンをアンインストールする
- v3.1.1 を手動でインストール (gem install bcrypt --platform=ruby)
- プロジェクトの gem ファイルを更新する
しかし、今回は何も機能しません。多くのリンクを参照しましたが、どれも役に立ちませんでした。
Windows 10、Rails 5.1.6、および Ruby 2.3.3 を使用しています。
ログイン機能にdevise gemを使用しましたが、ユーザーモデルは次のようになります
admin.controller