Я создаю приложение, используя уроки из книги Майкла Хартла. Я использовал его функции входа в систему, которые выглядят так:
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, как и ожидалось, когда я выхожу из системы и снова пытаюсь войти, я больше не застреваю. Итак, по какой-то причине перенаправление зависает только при первой попытке входа в новую вкладку.
Пожалуйста, если кто-нибудь может помочь мне решить / отладить эту проблему, я был бы очень благодарен.