2016-08-08 33 views
0

我的一个特殊用户在我的Rails应用程序中无法再登录,密码始终无效,即使我手动更改了密码。下面是我在轨控制台做: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" = '[email protected]' 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

您是否使用password_confirmation确认密码? – pramod

+0

我在这个线程中发现了灵魂:http://stackoverflow.com/questions/19599201/rails-devise-valid-password-method-returns-nil – Quentin

回答

2

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

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

是的,我试过,但这不是问题来自 – Quentin

+0

ohk,当你试过User.find(10).valid_password?('123456789')它给了什么? – power

+0

它给出'nil'。 – Quentin