0

我正在为我的一个项目使用 active_admin,并且我有一些包含大量数据的表(+100,000 条记录)。

可以分页浏览数据,但是当我想导出数据时(这样我可以在 excel 中进行自定义匹配),并且我尝试在 xml 中导出,它只是导出页面的当前记录,而不是导出过滤的总记录。

module ActiveAdmin
  class ResourceController
    module Collection
      module Pagination
        def max_csv_records
          1_000_000
        end
      end
    end
  end
end

但这不适用于 xml/json,有什么想法可以解决这个问题吗?

谢谢

4

2 回答 2

1

这可能对某些版本的活动管理员有所帮助:

module ActiveAdmin::ResourceController::DataAccess
  protected

  def apply_pagination_with_csv(chain)
    return chain if request.format == 'text/csv'
    apply_pagination_without_csv(chain)
  end

  alias_method_chain :apply_pagination, :csv
end

要确定补丁是否有效,您应该选择已安装的 gem这个文件

于 2015-02-07T12:33:04.740 回答
1

我最终做了另一个猴子补丁,可能有更好的方法,但这个有效

module ActiveAdmin
  class ResourceController
    module Collection
      module Pagination
        def per_page
          return 1_000_000 if %w(text/csv application/xml application/json).include?(request.format)

          return max_per_page if active_admin_config.paginate == false

          @per_page || active_admin_config.per_page
        end
      end
    end
  end
endend
于 2012-12-17T07:00:21.000 回答