У меня есть root_path
в моем приложении Rails, которое не защищено пользователем, т.е. это простая домашняя страница портала с формой входа.
После того, как пользователи войдут в систему, я бы хотел, чтобы это произошлона dashboard_path
.
Я сделал это:
def signed_in_root_path(scope_or_resource)
dashboard_path
end
Очевидно, это следует использовать, когда пользователь входит в систему, и я не хочу, чтобы он переходил на root_path
, сохраняя при этом пользователь, возвращающийся на предыдущую страницу, если он пытается попасть в ограниченную область, и он либо заблокирован, либо не вошел в систему.
т.е.:
limited_page -> login -> limited_page_but_logged_in
Я не хочу менять это поведение, и поэтому я не использовал after_sign_in_path
, но хочу перенаправить его, если он на root_path
, или любой другойМаршрут, который не требует аутентификации пользователя.
Моя проблема в том, что это не работает.После входа в систему меня перенаправляют обратно на root_path
, что, по моему мнению, связано с тем, что after_sign_in_path
запускается раньше.
Есть ли способ сделать это?Спасибо!
Редактировать: Это работает во второй раз, когда я вхожу, т.е. я захожу на root_path
, захожу, получаю флэш-сообщение о том, что я вошел в систему, и снова ввожу имя пользователя и парольформа на root_path
.Я успешно перенаправлен на dashboard_path
.Тем не менее, не совсем то поведение, которое я хочу.