【发布时间】:2021-06-21 19:04:15
【问题描述】:
我们正在使用 Activeadmin 来管理我们应用中的许多数据表。我们要使用的一项功能是 CSV 下载,但是 ActiveAdmin 生成的 CSV 下载链接不考虑过滤器。
在一张表中,我们有 8+ 百万条记录。我们希望能够按文本过滤,然后导出过滤列表的 CSV。过滤在浏览器中工作正常,但如果您点击 CSV - 您将获得整个表格的 CSV。
让 ActiveAdmin 在导出期间使用过滤器的技巧是什么?
【问题讨论】:
我们正在使用 Activeadmin 来管理我们应用中的许多数据表。我们要使用的一项功能是 CSV 下载,但是 ActiveAdmin 生成的 CSV 下载链接不考虑过滤器。
在一张表中,我们有 8+ 百万条记录。我们希望能够按文本过滤,然后导出过滤列表的 CSV。过滤在浏览器中工作正常,但如果您点击 CSV - 您将获得整个表格的 CSV。
让 ActiveAdmin 在导出期间使用过滤器的技巧是什么?
【问题讨论】:
我必须解决一次,这可能是一种方法。我做了一个 action_item 像:
action_item :special, only: :index do
link_to 'Custom CSV with filters and scopes', custom_csv_admin_your_own_pluralized_resource_name_here_path(params.permit!.slice(:q, :scope))
end
collection_action :custom_csv, :method => :get do
collection = find_collection
# here you can iterate over collection (maybe in batches) and generate CSV
end
您可能希望在 GEM 源中阅读此文件:
lib/active_admin/resource_controller/data_access.rb
【讨论】: