16

上次我遇到了active_admin的问题。在我有 5000 多行数据的表中,它的工作非常缓慢。我该如何优化它?也许有人知道这个模块的一些异步加载插件?

4

1 回答 1

41

您可以做几件事。

默认情况下,Active Admin 将关联加载为索引页面上的下拉过滤器。如果没有使用这些过滤器,则删除它们会有所帮助,因为它们会实例化该模型的每条记录以构建下拉列表。

ActiveAdmin.register Post do
  remove_filter :categories
end

如果您的索引页面有依赖于关联记录的列,那么急切加载它们会有所帮助。

ActiveAdmin.register Post do
  controller do
    def scoped_collection
      super.includes :author, :publisher
    end
  end
end

这实际上并不适用,因为您只有 5000 条记录,但是如果您达到即使是COUNT表的数据库也需要很长时间的地步,您可能希望禁用索引页面右下角的计数。(此功能在 0.6.1 中添加)

ActiveAdmin.register Post do
  index pagination_total: false
end
于 2013-10-29T19:42:36.333 回答