使用ActiveAdmin在csv导出中分页

时间:2015-11-27 12:52:18

标签: ruby-on-rails ruby activeadmin

我在应用程序中有一些管理面板使用ActiveAdmin gem构建它。我也有csv导出。问题是,默认情况下,ActiveAdmin使用批量为1000的批次将记录导出到csv。我想将其更改为更小的数字。我尝试添加类似的ActiveAdmin资源:

  before_filter do
    @per_page = 10
  end

但它不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

batch_size类(view on github)中的ActiveAdmin::CSVBuilder似乎是一个硬编码值。在这种情况下,似乎ActiveAdmin没有任何方法来配置它,除非在初始化器中使用猴子修补此方法:

ActiveAdmin::CSVBuilder.class_eval do
  private
  def batch_size
    10
  end
end

您可能希望在Github上向ActiveAdmin发出功能请求,因为这不是理想的解决方案。

你可以尝试的另一件事是(但它非常hacky):

ActiveAdmin::CSVBuilder.class_eval do
  attr_writter :batch_size

  private
  def batch_size
    @batch_size ||= 1000
  end
end

这样您就可以传递ActiveAdmin dsl method for csv中的batch_size选项:

csv do
  batch_size = 10
  #...
end