У меня есть приложение 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
. Тем не менее, не совсем то, что я хочу.