2016-08-08 2 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 

Это только с этим конкретным идентификатором пользователя 10. Я сделать то же самое с любым другим пользователем он работает. Что может быть неправильным?

EDIT: Я также пытался с подтверждением пароля, но это не проблема. Как я уже говорил, точное манипулирование прекрасно работает с любым пользователем, кроме этого удостоверения личности 10

EDIT 2: я нашел решение в этой теме: Rails/Devise: valid_password? method returns nil

+1

Подтверждение пароля с паролем_подтверждения? – 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

Это дает «ноль». – Quentin

Смежные вопросы