You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Active Admin未授权用户访问后台不自动跳转登录页问题

解决方案

这个问题是ActiveAdmin默认的未授权访问处理逻辑导致的,默认配置下未登录访问受保护的后台路径时,只会返回401状态码和提示文本,不会触发HTML页面跳转。你可以按照以下步骤修复:

  • 第一步:修改ActiveAdmin初始化配置
    打开config/initializers/active_admin.rb文件,找到on_unauthorized_access配置项,修改为:
    # 原有配置保留,只修改这一行,如果被注释了就取消注释修改值
    config.on_unauthorized_access = :redirect_to_admin_login
    
  • 第二步:添加重定向处理方法
    在app/controllers/application_controller.rb中添加对应的处理方法:
    class ApplicationController < ActionController::Base
      # 原有其他配置保留,新增以下方法
      def redirect_to_admin_login(exception)
        if request.format.html? && current_admin_user.blank?
          redirect_to new_admin_user_session_path, alert: exception.message
        else
          head :unauthorized
        end
      end
    end
    
  • 第三步:重启Rails服务
    配置修改完成后重启Rails服务,再次未登录访问/admin路径就会自动跳转到登录页了。

注意:你当前的routes.rb配置顺序是正确的,devise_for放在ActiveAdmin.routes前面不需要调整。

内容的提问来源于stack exchange,提问作者marshy101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 13:57:00