带BCrypt的导轨夹具

时间:2015-06-17 14:37:47

标签: ruby-on-rails fixtures bcrypt

我遇到了BCrypt密码的问题: 我的User模型设置为has_secure_passwordvalidates_presence_of :password

关键是BC​​rypt使用passwordpassword_confirmation,但在架构中只有password_digest字段。

夹具抱怨password字段不存在。

我该如何避免这种情况?

谢谢

2 个答案:

答案 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}}