为什么 FactoryBot 不在测试数据库中保存密码?
Why doesn't FactoryBot save passwords in the test database?
我刚刚 运行 遇到了一种情况,我不得不解决为什么我的测试用户无法登录系统测试。
原来用户的密码是nil。
我运行binding.pry创建用户后:
it 'some tests do
user = create(:user)
binding.pry
end
user.password = '12345' # correct
User.last.password = nil # wtf
user.email = 'joe@example.com' #correct
User.last.email = 'joe@example.com' #correct
有谁知道为什么 FactoryBot 没有将密码保存到数据库中?
User.last.password
为零的原因是明文密码是加密的,无法访问。检查您的 schema.rb
文件...您应该只会看到一个 encrypted_password 列(我假设您使用的是 Devise)。
要检查用户是否持久化,只需检查 user.persisted?
、user.errors
或类似的东西来弄清楚发生了什么。
我刚刚 运行 遇到了一种情况,我不得不解决为什么我的测试用户无法登录系统测试。
原来用户的密码是nil。
我运行binding.pry创建用户后:
it 'some tests do
user = create(:user)
binding.pry
end
user.password = '12345' # correct
User.last.password = nil # wtf
user.email = 'joe@example.com' #correct
User.last.email = 'joe@example.com' #correct
有谁知道为什么 FactoryBot 没有将密码保存到数据库中?
User.last.password
为零的原因是明文密码是加密的,无法访问。检查您的 schema.rb
文件...您应该只会看到一个 encrypted_password 列(我假设您使用的是 Devise)。
要检查用户是否持久化,只需检查 user.persisted?
、user.errors
或类似的东西来弄清楚发生了什么。