我是一名rails新手,遵循使用Rails 5.1进行敏捷rails Web开发的教程。我使用的是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'
这是fixtures文件:
# 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”),并在fixture中使用它。但即使这样也行不通。通过web界面,我可以创建新用户,服务器输出没有错误,但在控制台中,我得到的是:
>> BCrypt::Password.create('secret')
NameError: uninitialized constant BCrypt
from (irb):1
>> require 'bcrypt'
LoadError: cannot load such file -- bcrypt
from (irb):2
https://stackoverflow.com/questions/50611322
复制相似问题