rails redirect_to застрял на 302 после входа в систему - PullRequest
1 голос
/ 29 мая 2020

Я создаю приложение, используя уроки из книги Майкла Хартла. Я использовал его функции входа в систему, которые выглядят так:

sessions_controller.rb

def create
    user = User.find_by(email: params[:session][:email].downcase)
    if user && user.authenticate(params[:session][:password])
      log_in user
      params[:session][:remember_me] == '1' ? remember(user) : forget(user)
      redirect_to home_path
    else
      flash.now[:danger] = 'Invalid email/password combination'
      render 'new'
    end
  end

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

Застрял на 302

  User Load (4.1ms)  SELECT  "users".* FROM "users" WHERE "users"."email" = $1 LIMIT $2  [["email", "alex@halo.com"], ["LIMIT", 1]]
  ↳ app/controllers/sessions_controller.rb:7
   (2.1ms)  BEGIN
  ↳ app/models/user.rb:62
   (1.8ms)  COMMIT
  ↳ app/models/user.rb:62
Redirected to http://localhost:3000/selected
Completed 302 Found in 106ms (ActiveRecord: 12.6ms)

Строка 62 user.rb

def forget
    update_attribute(:remember_digest, nil)
end

Еще одна странность, переход в / home на новой вкладке показывает, что пользователь вошел в систему, когда я выхожу из системы и снова вхожу в систему на этой новой вкладке, он снова застревает. Когда я обновляю sh страницу, когда она застряла, она перенаправляет меня в / home, как и ожидалось, когда я выхожу из системы и снова пытаюсь войти, я больше не застреваю. Итак, по какой-то причине перенаправление зависает только при первой попытке входа в новую вкладку.

Пожалуйста, если кто-нибудь может помочь мне решить / отладить эту проблему, я был бы очень благодарен.

...