Я использую active_admin и имеющие проблемы с настройкой несколько пространств имен.несколько пространств имен на Rails ActiveAdmin вопросы
Соответствующие файлы:
конфигурации/Инициализаторы/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
Тогда у меня есть две вложенные папки, /admins
и /superadmin
:
приложение/active_admin/SuperAdmin/панель:
ActiveAdmin.register_page "Dashboard" do
...
приложение/active_admin/супер admin/product_product.rb:
ActiveAdmin.register Product::Product, as: Product do
...
Пока что так хорошо.
Теперь я не могу показаться, чтобы выяснить, как добавить панель для администраторов (или любых других страниц/моделей) без него взрывать.
Если я иду на localhost:3000/admins
, я получаю ошибку uninitialized constant Admins::DashboardController
.
Я попытался добавить:
приложение/active_admin/админов/dashboard.rb:
ActiveAdmin.register_page "Dashboard do
...
(который ничего не делает)
И пространство имен:
приложение/active_admin /admins/dashboard.rb:
ActiveAdmin.register_page "Dashboard, namespace: "admins" do
...
, который дает ошибку:
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
Я также попытался добавить вложенные папки в 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")
]
Пожалуйста, обратите внимание, что я смотрел на следующем, но никто, кажется, на самом деле работает ...
- http://activeadmin.info/docs/1-general-configuration.html#namespaces
- 2 Namespaces of activeadmin
- How to use multiple Active Admin instances for Complete Separate Models
EDIT:
Я также попытался удалить config.default_namespace
и единственное, что сделал перерыв localhost:3000/superadmin
так, что он имеет ошибку: uninitialized constant Superadmin::DashboardController
Это прекрасно работало. Спасибо @ Хатем Махмуд. –