【问题标题】:How to use multiple Active Admin instances for Complete Separate Models如何为完整的独立模型使用多个 Active Admin 实例
【发布时间】:2012-10-16 11:24:25
【问题描述】:

我有 2 个模型:

  • 用户
  • 供应商

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

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

用户可以访问产品、订单,而供应商只能访问产品。

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

user/order.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 类并并行运行它们?

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

【问题讨论】:

  • 如果有帮助的话,我会尽量避免将问题分成 2 个共享相同数据库的不同应用程序
  • 如何为用户和供应商创建单独的登录。

标签: ruby-on-rails devise activeadmin multiple-instances


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2015-05-25
    • 2013-10-06
    • 2021-11-26
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多