Перенаправление пользователей со страницы входа после входа в Rails с помощью Devise
Я бы хотел, чтобы мои пользователи перенаправлялись на домашнюю страницу, если они заходят в "/users/sign_in" после того, как они уже вошли в систему. Как я могу это сделать?
3 ответа
Решение
В вашем контроллере действие для входа на страницу (регистрация, вероятно, если вы используете devise). Вам придется переопределить контроллер, если вы этого еще не сделали.
def new
if current_user
redirect_to home_page_url
else
#current logic for sign in method (super) if you currently don't have it implemented
end
end
Я также обнаружил способ сделать это из файла router.rb; это намного проще, чем делать это с маршрутизатора, что потребовало бы от меня переопределения контроллеров devise.
authenticated :admin do
root :to => 'admin/dashboard#show'
end
authenticated do
root :to => 'dashboard#show'
end
root :to => 'landing#show'
http://rubydoc.info/github/plataformatec/devise/master/ActionDispatch/Routing/Mapper:authenticated
Добавьте следующее в ваш routs.rb:
match "user_root", :to => "site#show" # where SiteController#show is your home page