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

配置ActiveAdmin多命名空间后,如何在自定义目录生成资源?

解决Active Admin多命名空间自定义目录生成资源问题

1. 确认初始化文件的命名空间配置

先检查config/initializers/active_admin.rb里的命名空间设置,确保companies命名空间指定了自定义资源目录:

ActiveAdmin.setup do |config|
  # 默认admin命名空间配置
  config.namespace :admin do |admin|
    admin.root_to = 'dashboard#index'
  end

  # 自定义companies命名空间,指定资源存放目录
  config.namespace :companies do |companies|
    companies.root_to = 'dashboard#index'
    # 核心配置:添加自定义资源目录到加载路径
    companies.load_paths << Rails.root.join('app/admin/companies')
  end
end

2. 生成资源时指定命名空间与目录

使用生成命令时,明确指定命名空间,同时控制文件生成路径:

  • 生成admin命名空间资源(默认存放在app/admin):
rails generate active_admin:resource User --namespace admin
  • 生成companies命名空间资源,指定存放在app/admin/companies:
rails generate active_admin:resource Product --namespace companies --path app/admin/companies

如果生成时没加--path参数,可手动将生成的文件移动到app/admin/companies目录。

3. 调整资源文件的命名空间声明

确保资源文件开头的命名空间与目录对应,比如app/admin/companies/product.rb:

ActiveAdmin.register Product, namespace: :companies do
  # 资源配置内容
  permit_params :name, :price, :description
end

4. 验证路由与重启服务

路由文件config/routes.rb保留ActiveAdmin.routes(self)即可,Active Admin会自动加载多命名空间路由。修改配置后必须重启Rails服务器,否则新配置不会生效。

排查要点

  • 确认app/admin/companies目录存在且权限正常
  • 生成命令的参数无拼写错误
  • 生成资源前已创建对应模型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 19:35:25