Module: GridTable::Controller

Defined in:
lib/grid_table/controller.rb

Instance Method Summary collapse

Instance Method Details

#grid_table_export_for(resource, params) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/grid_table/controller.rb', line 21

def grid_table_export_for(resource, params)
  grid_table = resource.grid_table
  params[:skip_paging] ||= true
  grid_table.populate!(resource, params)

  if block_given?
    yield grid_table.records
  else
    csv = grid_table.records.klass.to_csv(grid_table.records)

    send_data csv, filename: "#{grid_table.records.klass.name.demodulize.underscore}.csv"
  end
end

#grid_table_for(resource, params, options = {}) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/grid_table/controller.rb', line 3

def grid_table_for(resource, params, options = {})
  grid_table = resource.grid_table
  grid_table.populate!(resource, params, options)

  if block_given?
    yield grid_table.records, grid_table.total_rows
  else
    rows = []

    local = options[:local].try(:to_sym) || grid_table.records.klass.name.demodulize.underscore.to_sym
    grid_table.records.each do |record|
      rows << (render_to_string partial: (options[:partial] || 'row'), locals: { local => record })
    end

    render json: { total_rows: grid_table.total_rows, rows: rows }
  end
end