2013-10-23 58 views

回答

3

假设您使用的默认名称空间为:admin,则可以为ActiveAdmin 0.6.1+执行以下操作。

resource_collection = ActiveAdmin.application.namespaces[:admin].resources 

resources = resource_collection.select { |resource| resource.respond_to? :resource_class } 
pages  = resource_collection.reject { |resource| resource.respond_to? :resource_class } 

resource_classes = resources.map { |resource| resource.resource_class } 
page_names  = pages.map  { |resource| resource.name } 

API是ActiveAdmin::ResourceActiveAdmin::Page之间略有不同,这就是为什么页和资源被分别提取​​。命名空间中的所有资源都在其ResourceCollection中。