Для быстрого блока кода, описывающего, как это сделать с помощью существующей модели «Пользователь» с помощью activeadmin, ответ на самом деле очень прост. В контроллере приложения:
class ApplicationController < ActionController::Base
def authenticate_admin_user! #use predefined method name
redirect_to '/' and return if user_signed_in? && !current_user.is_admin?
authenticate_user!
end
def current_admin_user #use predefined method name
return nil if user_signed_in? && !current_user.is_admin?
current_user
end
end
И просто используйте то, что Devise уже настроил для аутентификации. redirect_to
- это место, куда вы хотите отправлять пользователей, вошедших в систему и не имеющих прав администратора.