Rails设计用户密码始终无效(在rails控制台中测试)

时间:2016-08-08 10:47:20

标签: ruby-on-rails devise

我的rails应用程序中有一个特定用户,我无法再登录,密码始终无效,即使我手动更改了密码。这是我在rails控制台中所做的事情:

> me = User.find(10)
> me.password = '123456789'
> me.save
  (0.3ms)  BEGIN
 User Exists (0.6ms)  SELECT  1 AS one FROM "users" WHERE ("users"."email" = 'myemail@gmail.com' AND "users"."id" != 10) LIMIT 1
 SQL (0.7ms)  UPDATE "users" SET "encrypted_password" = $1, "updated_at" = $2 WHERE "users"."id" = $3  [["encrypted_password", "$2a$10$mrhWiOT3pu6YldtYRD/bC.wuqPthyfJhiqdGkYv14xCafVQNTodWG"], ["updated_at", "2016-08-08 10:43:34.715229"], ["id", 10]]
  (31.3ms)  COMMIT
=> true
> me.valid_password?('123456789')
=> nil

这仅适用于此特定用户ID 10.我对其工作的任何其他用户执行完全相同的操作。可能有什么不对?

编辑:我也尝试过密码确认,但这不是问题。正如我所说,除了ID 10之外的任何用户,确切的操作都可以正常工作

编辑2:我在此主题中找到了解决方案:Rails/Devise: valid_password? method returns nil

1 个答案:

答案 0 :(得分:2)

我想你可能也需要设置password_confirmation,试试下面的代码。

> me = User.find(10)
> me.password = '123456789'
> me.password_confirmation = '123456789'
> me.save