paginateをtrueにしていると、CSVダウンロード時にも有効になってしまう。
CSVダウンロード時にはpaginateしたくない。そんな時の対処。
あらかじめ、最大件数を設定しておく
config/initializers/active_admin.rb
config.max_per_page = 60_000
モンキーパッチ当てる(どこかから拾ったんですが・・w)
lib/monkey_patches/active_admin/resource_controller/collection/pagination.rb
module ActiveAdmin
class ResourceController
module Collection
module Pagination
def per_page
return max_per_page if request.format == 'text/csv'
return max_per_page if active_admin_config.paginate == false
@per_page || active_admin_config.per_page
end
end
end
end
end
これでOKです。 CSVダウンロード時のみ、最大件数まで取得できます
ちなみに、他のメソッド内とかで呼びたい時は基本、
config.max_per_page
でいいのですが、たまにnilで返ってくる時があります。(なんか拡張するようなコード書いてる時etc...)
そんな時は、
active_admin_config.namespace.application.max_per_page
で設定した最大件数が取得できる・・・はず。
何かの参考になれば