2

I'm using active_admin and having issues setting up multiple namespaces.

Relevant files:

config/initializers/active_admin.rb:

config.load_paths = [File.join(Rails.root, "app", "active_admin")]
config.default_namespace = :superadmin

config.namespace :superadmin do |superadmin|
  superadmin.site_title = "superadmin"
  superadmin.authentication_method = :authenticate_superadmin_user!
end

config.namespace :admins do |admins|
  admins.site_title = "admins"
  admins.authentication_method = :authenticate_admin_user!
end

Then I have two subfolders, /admins and /superadmin:

app/active_admin/superadmin/dashboard:

ActiveAdmin.register_page "Dashboard" do
  ...

app/active_admin/superadmin/product_product.rb:

ActiveAdmin.register Product::Product, as: Product do
  ...

So far, so good.

Now, I can't seem to figure out how to add a dashboard for admins (or any other pages/models) without it blowing up.

If I go to localhost:3000/admins, I get the error uninitialized constant Admins::DashboardController.

I've tried adding:

app/active_admin/admins/dashboard.rb:

ActiveAdmin.register_page "Dashboard do
  ...

(which does nothing)

And namespaced:

app/active_admin/admins/dashboard.rb:

ActiveAdmin.register_page "Dashboard, namespace: "admins" do
  ...

which gives the error:

Invalid route name, already in use: 'admins_root' 
You may have defined two routes with the same name using the `:as` option, 
or you may be overriding a route already defined by a resource 
with the same naming

I've also tried adding the subfolders in the load_paths:

config.load_paths = [
  File.join(Rails.root, "app", "active_admin"),
  File.join(Rails.root, "app", "active_admin", "admins"),
  File.join(Rails.root, "app", "active_admin", "superadmin")
]

Please note that I've looked at the following, but none seem to actually work...

EDIT:

I've also tried to remove config.default_namespace and the only thing that did was break localhost:3000/superadmin so that it has the error: uninitialized constant Superadmin::DashboardController

Community
  • 1
  • 1
David Parker
  • 128
  • 2
  • 13

0 Answers0