2017-01-25 13 views
1

Я использую 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") 
] 

Пожалуйста, обратите внимание, что я смотрел на следующем, но никто, кажется, на самом деле работает ...

EDIT:

Я также попытался удалить config.default_namespace и единственное, что сделал перерыв localhost:3000/superadmin так, что он имеет ошибку: uninitialized constant Superadmin::DashboardController

ответ

1

Я не уверен, , но я нашел рабочий пример с двумя пространствами имен, администратором и модератором, каждый со своей отдельной панелью и страницами.

Вы можете проверить код и запустить приложение в вашем браузере здесь: http://code.runnable.com/UsdWOiz4K8oDAAgG/customizing-active-admin-for-ruby-on-rails

+0

Это прекрасно работало. Спасибо @ Хатем Махмуд. –

 Смежные вопросы

  • Нет связанных вопросов^_^