Переадресация после входа с Devise - PullRequest
25 голосов
/ 03 октября 2011

Можно ли перенаправить пользователей на разные страницы (в зависимости от роли) после входа в Devise? Кажется, он только перенаправляет на страницу root: to => ..., определенную в маршрутах. Rb

Спасибо!

Ответы [ 5 ]

28 голосов
/ 03 октября 2011

По умолчанию Devise делает маршрут к root после своих действий. Есть хорошая статья о переопределении этих действий в Devise Wiki, https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-in

Или вы можете пойти еще дальше, установив stored_locations_for(resource) на ноль, а затем использовать различные перенаправления для каждого действия, например: after_sign_up_path(resource), after_sign_in_path(resource) и т. Д.

16 голосов
/ 14 февраля 2014

просто вы можете добавить этот метод в контроллер вашего приложения

def after_sign_in_path_for(resource)
  user_path(current_user) #your path
end
2 голосов
/ 14 сентября 2015

вставьте только приведенный ниже код в контроллер приложения или любой другой контроллер, вам нужно выполнить операцию;

def after_sign_in_path_for(resource)
    users_path
end
0 голосов
/ 15 марта 2019

Devise имеет вспомогательный метод (after_sign_in_path_for), который можно использовать для переопределения маршрута Devise по умолчанию для root после входа в систему / входа в систему.

Чтобы реализовать перенаправление на другой путь после входа в систему, просто добавьте этот метод в контроллер приложения.

#class ApplicationController < ActionController::Base
def after_sign_in_path_for(resource)
  users_path
end

Где users_path - это путь, на который вы хотите перенаправить его, User - это название модели, соответствующее модели для Devise.

N / B: если вы использовали Admin в качестве названия вашей модели для Devise, то это будет

#class ApplicationController < ActionController::Base
def after_sign_in_path_for(resource)
  admins_path
end

Вот и все.

Надеюсь, это поможет

Подпишите этот ответ как полезный, если он поможет, или прокомментируйте ниже ответ для получения дополнительных разъяснений.

0 голосов
/ 03 октября 2011

Вот что я думаю, это ответ, который вы ищете в вики разработки:

Как: изменить маршруты по умолчанию sign_in и sign_out

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...