2012-09-12 13 views
10

我有2種型號:如何使用多個Active管理情況完全不同的模型

  • 用戶
  • 供應商

,我想提供2隔離主動管理接口。 他們都有設計路線:

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

用戶將有機會獲得產品,訂單和供應商將只能訪問產品。

理想情況下,我想要在應用程序中具有不同的文件夾並呈現不同的數據。

用戶/ order.rb

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

供應商/ order.rb

ActiveAdmin.register Order do 
    filter :email 

有什麼方法來初始化2 ActiveAdmin類和並行運行呢?

任何其他更好的方式,使其在同一個網站/應用程序下工作?

+0

我會盡量避免分離問題分成2個不同的應用程序共享相同的數據庫如果有幫助 – stonehz

+0

如何爲用戶和供應商創建單獨的登錄。 – Vijay

回答

14

您可以爲此使用命名空間。

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

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

您可以自定義每個命名空間的認證以config/initializers/active_admin.rb

例如:

 
    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 

更多信息上:http://activeadmin.info/docs/1-general-configuration.html#namespaces

相關問題