2012-09-12 9 views
10

Ich habe 2 Modelle verwenden:Wie mehrere Active Admin-Instanzen für die komplette separate Modelle

  • Benutzer
  • Lieferanten

und ich möchte 2 Aktive Admin-Schnittstellen getrennt liefern. Sie haben beide Routen entwickeln:

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

Benutzer Zugriff auf Produkte haben, Aufträge und Lieferant nur Zugang zu den Produkten haben.

Idealerweise möchte ich verschiedene Ordner in der App haben und verschiedene Daten präsentieren.

Benutzer/order.rb

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

Lieferant/order.rb

ActiveAdmin.register Order do 
    filter :email 

Gibt es eine Möglichkeit 2 ActiveAdmin Klassen zu initialisieren und sie parallel laufen?

Gibt es noch einen besseren Weg, um es unter der gleichen Website/App arbeiten zu lassen?

+0

Ich versuche, das Problem in zwei verschiedene Apps zu vermeiden Trennung die gleichen DB teilen, wenn das hilft – stonehz

+0

Wie separate Login für Benutzer und Anbieter erstellen. – Vijay

Antwort

14

Sie können Namespaces dafür verwenden.

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

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

Sie können die Authentifizierung für jeden Namespace in config/initializers/active_admin.rb

Zum Beispiel anpassen:

 
    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 

Weitere Informationen über: http://activeadmin.info/docs/1-general-configuration.html#namespaces

Verwandte Themen