我遇到了BCrypt密码的问题:
我的User
模型设置为has_secure_password
和validates_presence_of :password
。
关键是BCrypt使用password
和password_confirmation
,但在架构中只有password_digest
字段。
夹具抱怨password
字段不存在。
我该如何避免这种情况?
谢谢
答案 0 :(得分:12)
似乎正在将灯具直接推送到数据库。这意味着您的灯具中需要password:
代替password_digest:
:
test_user:
email: "tester@testing.net"
password_digest: <%= BCrypt::Password.create('testpassword', cost: 5) %>
使用基于bcrypt的密码has_secure_password
时。正如评论中所提到的cost
参数是可选的。如果您不使用它,将使用合理的默认值。
答案 1 :(得分:-1)
我在模型测试中使用设置功能解决了这个问题。 我们可以在设置中定义对象并通过测试文件使用它。
{{1}}