В моем файле rout.rb я определил корневой путь следующим образом:
root 'users/sessions#new'
Затем в моем ApplicationController у меня есть логика для перенаправления следующим образом:
def after_sign_in_path_for(user)
return dashboard_path if user.normal_user?
employee_dashboard_path
end
После входа в систему как обычного пользователя, перехода к корневому пути (то есть localhost: 3000), я перенаправлен на dashboard_path
, как и ожидалось.Однако, когда я щелкаю по элементу на панели инструментов и перехожу на страницу показа элемента, я вижу это флэш-сообщение:
You are already signed in.
Я в замешательстве, потому что флэш-сообщение не должно сбрасываться послеперенаправление на dashboard_path
?Я обнаружил, что если я добавлю код для отображения флэш-сообщения на странице панели инструментов, то флэш-сообщение не будет отображаться на странице показа элемента.Я показываю флеш-сообщение просто так:
<div class="alert alert-success" role="alert">
<%= flash[:notice] %>
</div>
Я знаю, что если перейти к файлу devise.en.yml
и удалить сообщение already_authenticated
, флэш-память не появится, ноЯ не хочу этого делать, потому что я хочу показать это сообщение для другого типа пользователя.Я делаю что-то неправильно?Почему флэш-сообщение сохраняется на странице показа элемента и не исчезает после перенаправления на панель инструментов?Спасибо за вашу помощь!