Придумать + Активный Админ Редирект


У меня возникли проблемы с настройкой перенаправления для моего приложения. Пользователи должны перейти в свой профиль (users / show), а администраторы - в панель администратора.. Как мне это устроить?

В данный момент получаем следующую ошибку:

 NameError in ActiveAdmin::Devise::SessionsController#create

    undefined local variable or method `admin' for #<ActiveAdmin::Devise::SessionsController:0x007febe12667e8>

Контроллер Приложения

def after_sign_in_path_for(resource_or_scope)
   if admin
   redirect_to admin_dashboard_path
  else
   @user
  end
 end
end
2 5

2 ответа:

У вас нет переменной admin для доступа, вам нужно проверить, какой параметр вам задан.

def after_sign_in_path_for(resource)
  stored_location_for(resource) ||
    if resource.is_a?(Admin)
      admin_dashboard_path
    else
      user_path(resource)
    end
end

Вы также должны Не перенаправлять внутри этого метода, он должен возвращать только путь, который может использовать devise.

if resource.class == User
  root_path
elsif resource.class == AdminUser
  admin_root_path
else
end