Майкл Хартл Руководство по Ruby on Rails Глава 9 Неудачные тесты - PullRequest
0 голосов
/ 22 марта 2019

Я пытался найти ответ на этот вопрос, но безрезультатно.

Я получаю это сообщение об ошибке при запуске теста рельсов.

    1) Error:
UsersLoginTest#test_login_with_valid_information_followed_by_logout:
ActionView::Template::Error: invalid hash
    app/models/user.rb:32:in `new'
    app/models/user.rb:32:in `authenticated?'
    app/helpers/sessions_helper.rb:21:in `current_user'
    app/helpers/sessions_helper.rb:30:in `logged_in?'
    app/views/layouts/_header.html.erb:8:in `_app_views_layouts__header_html_erb__454288832_69555624'
    app/views/layouts/application.html.erb:9:in `_app_views_layouts_application_html_erb___219463369_68483868'
    test/integration/users_login_test.rb:45:in `block in <class:UsersLoginTest>'

24 runs, 66 assertions, 0 failures, 1 errors, 0 skips

Вот соответствующиефайлы, любая помощь будет принята с благодарностью

Спасибо!

от пользователя.* Изменить: я не позволю мне больше публиковать код, поэтому, если вам нужно что-то увидеть, дайте мне знать!

1 Ответ

0 голосов
/ 22 марта 2019

«BCrypt :: Errors :: InvalidHash» при попытке войти в систему Похоже на ту же проблему, с которой вы столкнулись:

Это означает, что хеш, хранящийся в password_digest, не является действительным хешем BCrypt (в том числе, если поле пустое).

Судя по комментариям, создается впечатление, что вы только что создали пользователя в тот момент, когда has_secure_password не было, поэтому дайджест пароля никогда не сохранялся. Посмотрите в базе данных, вы, вероятно, увидите, что password_digest пуст для этого пользователя. Удалите пользователя из базы данных и заново создайте его с новым рабочим кодом, и он должен работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...