【问题标题】:How can I have an Active Admin nested and non-nested resource view?如何拥有 Active Admin 嵌套和非嵌套资源视图?
【发布时间】:2012-05-05 13:26:11
【问题描述】:

一个用户有_many交易。我有活动管理员当前设置为使用 admin/transactions.rb 中的 belongs_to :user 将事务嵌套在基本 CRUD 的用户下。然而,我还需要一个顶级的交易视图,显示跨用户的交易记录子集。我怎样才能完成第二部分?

【问题讨论】:

    标签: ruby-on-rails activeadmin


    【解决方案1】:

    我认为现在最好的方法是传入“可选”选项:

    ActiveAdmin.register Transactions do
      belongs_to :user, :optional => true
      ...
    end
    

    这样,您可以从主导航菜单以及特定用户下的嵌套视图访问所有事务。

    如果想了解更多,可以参考下面的源码:

    https://github.com/gregbell/active_admin/blob/0.4.x-stable/lib/active_admin/resource.rb

    第 131 行

    def include_in_menu?
      super && !(belongs_to? && !belongs_to_config.optional?)
    end
    

    【讨论】:

      【解决方案2】:

      您需要创建两个 Active Admin 资源,它们都引用需要嵌套和非嵌套路由的同一个 Active Record 模型。

      父资源:

      ActiveAdmin.register ParentClass do
      end
      

      嵌套资源:

      ActiveAdmin.register ChildClass do
        belongs_to :parent_class
      end
      

      未嵌套的资源:

      ActiveAdmin.register ChildClass, :as => "All Children" do
      end
      

      您现在可以通过“所有子级”选项卡直接访问 ChildClass,而不会收到 ParentClass 丢失的错误,同时仍然可以享受从 ParentClass 对 ChildClass 的嵌套访问。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-21
        • 1970-01-01
        相关资源
        最近更新 更多