私は Rails 5.1 を使用した Agile Rails Web Development のチュートリアルに従っている Rails 初心者です。私はレール5.2を使用しています
私は以下でユーザーを作成しました:
rails g scaffold User name:string password:digest
rails db:migrate
class User < ApplicationRecord
validates :name, presence: true, uniqueness: true
has_secure_password
end
すべてのユーザー テストは次のエラーで失敗します。
NameError: uninitialized constant ActiveRecord::FixtureSet::RenderContext::BCrypt
test/fixtures/users.yml:5:in `get_binding'
これはフィクスチャ ファイルです。
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
one:
name: dave
password_digest: <%= BCrypt::Password.create('secret') %>
two:
name: susannah
password_digest: <%= BCrypt::Password.create('secret') %>
github へのリンク: https://github.com/marko-avlijas/depot
これをデバッグする方法がわかりません。エラーをグーグルで調べても何も得られません。
require 'bcrypt'
test_helper を入れると、次のようになります。
「require」: そのようなファイルを読み込めません -- bcrypt (LoadError)
bo-oz は、BCrypt::Password.create('secret') をコンソールに貼り付け、それをフィクスチャで使用することを提案しました。しかし、それでもうまくいきません。Webインターフェイスを介して新しいユーザーを作成でき、サーバーの出力はエラーを示していませんが、コンソールでは次のようになります。
>> BCrypt::Password.create('secret')
NameError: uninitialized constant BCrypt
from (irb):1
>> require 'bcrypt'
LoadError: cannot load such file -- bcrypt
from (irb):2