2012-09-12 14 views
10

tengo 2 modelos:Cómo utilizar varias instancias de administración activa de distintos modelos completos

  • Usuarios
  • Proveedores

y quiero dar 2 aislados interfaces de administración activa. Ambos tienen idear rutas:

devise_for :users, ActiveAdmin::Devise.config 
devise_for :suppliers, ActiveAdmin::Devise.config (can I somehow say ActiveAdmin2::Devise.config) 

usuario tendrá acceso a los productos, órdenes y Proveedor tendrá acceso sólo a los productos.

Idealmente, quiero tener diferentes carpetas en la aplicación y presentar datos diferentes.

usuario/order.rb

ActiveAdmin.register Order do 
    filter :email 
    filter :created_at , :label => "Order Creation Date" 
    filter :order_created 

proveedor/order.rb

ActiveAdmin.register Order do 
    filter :email 

¿Hay alguna forma para inicializar 2 Clases ActiveAdmin y ejecutarlos en paralelo?

¿Alguna otra forma mejor de hacerlo funcionar en el mismo sitio web/aplicación?

+0

trato de evitar separar el problema en 2 Aplicaciones diferentes que comparten el mismo DB si eso ayuda – stonehz

+0

Cómo crear un inicio de sesión separado para el usuario y el proveedor. – Vijay

Respuesta

14

Puede usar espacios de nombres para esto.

 
ActiveAdmin.register Order, namespace: :supplier do 
    # will be available at /supplier/orders 
end 

ActiveAdmin.register Order, namespace: :user do 
    # available at /user/orders 
end 

Es posible personalizar la autenticación para cada espacio de nombres en config/initializers/active_admin.rb

Por ejemplo:

 
    config.default_namespace = :user 

    config.namespace :supplier do |supplier| 
    supplier.authentication_method = :authenticate_supplier_user! 
    supplier.current_user_method = :current_supplier_user 
    supplier.logout_link_path = :destroy_supplier_user_session_path 
    supplier.root_to = 'orders#index' 
    end 

    config.namespace :user do |user| 
    user.authentication_method = false 
    user.current_user_method = :current_user 
    user.logout_link_path = false 

Más información en: http://activeadmin.info/docs/1-general-configuration.html#namespaces

Cuestiones relacionadas