10

我有 2 个模型:

  • 用户
  • 供应商

我想提供 2 个独立的 Active Admin 界面。他们都有设计路线:

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

用户将有权访问产品、订单,而供应商将只能访问产品。

理想情况下,我希望应用程序中有不同的文件夹并呈现不同的数据。

用户/订单.rb

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

供应商/订单.rb

ActiveAdmin.register Order do
  filter :email

有没有办法初始化 2 个 ActiveAdmin 类并并行运行它们?

还有其他更好的方法可以让它在同一个网站/应用程序下工作吗?

4

1 回答 1

20

您可以为此使用命名空间。

ActiveAdmin.register 顺序,命名空间: :supplier do
  # 将在 /supplier/orders 上提供
结尾

ActiveAdmin.register 命令,命名空间: :user do
  # 在 /user/orders 可用
结尾

您可以为每个命名空间自定义身份验证config/initializers/active_admin.rb

例如:

  config.default_namespace = :user

  config.namespace :supplier do |supplier|
    供应商.authentication_method = :authenticate_supplier_user!
    供应商.current_user_method = :current_supplier_user
    供应商.logout_link_path = :destroy_supplier_user_session_path
    供应商.root_to = '订单#index'
  结尾

  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

于 2012-09-12T16:03:40.540 回答