我的一個特殊用戶在我的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
您是否使用password_confirmation確認密碼? – pramod
我在這個線程中發現了靈魂:http://stackoverflow.com/questions/19599201/rails-devise-valid-password-method-returns-nil – Quentin