7

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

4

2 回答 2

19

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

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
于 2013-04-11T22:48:26.753 回答
7

您需要创建两个 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 的嵌套访问。

于 2012-10-11T22:20:34.983 回答