module ActiveAdmin module Reports module DSL def enable_reports action_item only: :index do link_to("Download", {action: :report, params: params}, {method: :post, data: { confirm: "Are you sure you want to generate this report?"}}) end collection_action :report, method: :post do report = Report.create({ name: resource_class.to_s.pluralize.titleize, model_name: resource_class.to_s, admin_user: current_admin_user, params: params['q'] }) Report.delay.generate(report.id) redirect_to(admin_report_path(report.id), {notice: "Report queued for processing!"}) end end end end ActiveAdmin::ResourceDSL.send :include, ActiveAdmin::Reports::DSL end