我正在尝试使用 Active Admin 中已经存在的收集操作“download_csv”来下载资源的所有记录。但是,该操作仅下载当前页面的内容。由于我已经对资源进行了分页,因此需要从所有页面下载数据。关于如何解决这个问题的任何建议?
问问题
1319 次
3 回答
5
只为未来的谷歌人。我的修复(适用于当前的 Master 1.0.0pre)是将以下内容添加到config/initializers/active_admin.rb
:
module ActiveAdmin
class ResourceController
module DataAccess
# needed for current active admin master
def max_per_page
30_000
end
def per_page
return 30_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
根据需要更换最大值。这适用于 csv、xml 和 json 下载。
于 2014-01-16T01:43:57.230 回答
2
这个答案可能有点晚,但希望它可以帮助某人。
这是我在当前应用程序中的工作方式:
csv do
ModelName::ATTR_ADMIN_EXPORT.each do |sym|
column sym
end
end
在模型中,我的 ATTR_ADMIN_EXPORT 定义如下:
ATTR_ADMIN_EXPORT = [:name, :created_at]
让我知道这是否适合您!
于 2013-05-06T15:28:30.517 回答
1
你可以试试这个
before_filter :only => :index do
@per_page = 10 unless request.format == 'text/csv'
end
此代码还将使分页动态化。
before_filter :only => :index do
if params[:pag].blank?
@per_page = AdminSetting.where(:name => 'JobPagination').first.value.to_i unless request.format == 'text/csv'
else
@per_page = 10
end
end
于 2013-05-17T02:40:19.187 回答