使用 ActiveAdmin 在 csv 导出中分页
Pagination in csv export using ActiveAdmin
我在使用 ActiveAdmin gem 构建的应用程序中有一些管理面板。我在那里也有 csv 导出。问题是默认情况下,ActiveAdmin 使用大小为 1000 的批次将记录导出到 csv。我想将其更改为更小的数字。我试图在我的 ActiveAdmin 资源中添加类似这样的内容:
before_filter do
@per_page = 10
end
但它不起作用。有什么想法吗?
看起来 batch_size
是 ActiveAdmin::CSVBuilder
class (view on github) 中的硬编码值。既然如此,ActiveAdmin 似乎没有留下任何方法来配置它,除了在初始化程序中猴子修补这个方法:
ActiveAdmin::CSVBuilder.class_eval do
private
def batch_size
10
end
end
您可能想在 Github 上向 ActiveAdmin 提出功能请求,因为这不是理想的解决方案。
您可以尝试的另一件事是(但它很老套):
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
我在使用 ActiveAdmin gem 构建的应用程序中有一些管理面板。我在那里也有 csv 导出。问题是默认情况下,ActiveAdmin 使用大小为 1000 的批次将记录导出到 csv。我想将其更改为更小的数字。我试图在我的 ActiveAdmin 资源中添加类似这样的内容:
before_filter do
@per_page = 10
end
但它不起作用。有什么想法吗?
看起来 batch_size
是 ActiveAdmin::CSVBuilder
class (view on github) 中的硬编码值。既然如此,ActiveAdmin 似乎没有留下任何方法来配置它,除了在初始化程序中猴子修补这个方法:
ActiveAdmin::CSVBuilder.class_eval do
private
def batch_size
10
end
end
您可能想在 Github 上向 ActiveAdmin 提出功能请求,因为这不是理想的解决方案。
您可以尝试的另一件事是(但它很老套):
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