Извините, сначала я подумал, что вы имели в виду после регистрации, а не входа. Таким образом, ниже показано, как направить пользователей после регистрации, и что вам нужно сделать для входа, это создать собственный Devise :: FailureApp
См. Страницу вики: https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-when-the-user-can-not-be-authenticated
Затем в вашем пользовательском методе FailureApp перезаписать redirect_url
метод из https://github.com/plataformatec/devise/blob/master/lib/devise/failure_app.rb:
def redirect_url
if warden_message == :unconfirmed
custom_redirect_path
else
super
end
end
Для пользовательского перенаправления после регистрации:
В RegistrationsController есть метод контроллера after_inactive_sign_up_path_for
, который вы можете перезаписать для достижения этой цели.
Сначала в ваших маршрутах вам нужно будет указать, использовать ли пользовательский контроллер:
config/routes.rb
devise_for :users, :controllers => { :registrations => "users/registrations" }
Во-вторых, вы создаете свой собственный контроллер, который наследуется от обычного контроллера, чтобы перезаписать метод:
app/controllers/users/registrations_controller.rb
class Users::RegistrationsController < Devise::RegistrationsController
protected
def after_inactive_sign_up_path_for(resource)
signed_up_path
end
end
В этом случае для моего приложения моя модель Devise - Пользователь, поэтому вы можете изменить это пространство имен, если ваша модель названа по-другому. Я хотел, чтобы мои пользователи перенаправлялись на signed_up_path
, но вы можете изменить его на желаемый путь.