Rails не приведет меня к форме сброса пароля, постоянно перенаправляя меня - PullRequest
0 голосов
/ 23 июня 2019

Я следую руководству Майкла Хартла по обучению Ruby и ухожу на урок 12: Форма сброса пароля.

Моя проблема заключается в том, что при локальном тестировании я не перехожу к форме сброса паролей. Я вижу в своих журналах, что он пытается, но вместо этого перенаправляет меня на домашнюю страницу (корень "/"). Я понятия не имею, почему он делает это, поскольку я следую за учебником. Но это работает в производстве! У меня есть все репозитории GitHub здесь , если кто-то хочет взглянуть.

Я подтвердил, что мой routes.rb правильный, так как я вижу URL сброса пароля, используя rake rails. Я также проверил, что действительно перенаправляет меня на / как в журналах сервера:

Started GET "/password_resets/D7-YG1GP-RNkdVJFp4PwjQ/edit?email=jessica@example.com" for 127.0.0.1 at 2019-06-23 13:13:20 -0400
Processing by PasswordResetsController#edit as HTML
  Parameters: {"email"=>"jessica@example.com", "id"=>"D7-YG1GP-RNkdVJFp4PwjQ"}
  User Load (1.0ms)  SELECT  "users".* FROM "users" WHERE "users"."email" = ? LIMIT ?  [["email", "jessica@example.com"], ["LIMIT", 1]]
  ↳ app/controllers/password_resets_controller.rb:45
Redirected to http://0.0.0.0:3000/
Filter chain halted as :valid_user rendered or redirected
Completed 302 Found in 2ms (ActiveRecord: 1.0ms)

Похоже, виновником является valid_user функция, но для меня это выглядит нормально. По сути, пользователь должен существовать в базе данных, быть активирован и аутентифицирован с использованием токенов. В противном случае вы будете перенаправлены.

# Confirms a valid user.
    def valid_user
        unless (@user && @user.activated? &&
            @user.authenticated?(:reset, params[:id]))
        redirect_to root_url
    end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...