Перенаправление пользователей со страницы входа после входа в 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
Другие вопросы по тегам