Class: IronAdmin::ExportsController

Inherits:
ApplicationController show all
Includes:
Concerns::Filterable, Concerns::Scopeable, Concerns::Searchable
Defined in:
app/controllers/iron_admin/exports_controller.rb

Overview

Controller for exporting resource data to CSV and JSON formats.

Exports respect field visibility settings and tenant scoping. Access via /admin/:resource_name/export.csv or .json

See Also:

  • Resource#exports
  • Resource#export_fields

Instance Method Summary collapse

Instance Method Details

#showvoid

This method returns an undefined value.

Exports resource data in the requested format.



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'app/controllers/iron_admin/exports_controller.rb', line 21

def show
  records = collection_scope
  fields = export_fields

  respond_to do |format|
    format.csv do
      csv_data = generate_csv(records, fields)
      send_data csv_data,
                filename: "#{@resource_class.resource_name}_#{Date.current}.csv",
                type: "text/csv"
    end

    format.json do
      data = records.map { |r| fields.each_with_object({}) { |f, h| h[f.name] = safe_field_value(r, f, :json) } }
      render json: data
    end
  end
end