我在应用程序中有一些管理面板使用ActiveAdmin gem构建它。我也有csv导出。问题是,默认情况下,ActiveAdmin使用批量为1000的批次将记录导出到csv。我想将其更改为更小的数字。我尝试添加类似的ActiveAdmin资源:
before_filter do
@per_page = 10
end
但它不起作用。有什么想法吗?
答案 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