【发布时间】:2016-12-14 02:39:39
【问题描述】:
我的 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
【问题讨论】:
-
您是否使用 password_confirmation 确认密码?
-
我在这个帖子中找到了灵魂:stackoverflow.com/questions/19599201/…
标签: ruby-on-rails devise