Class: Collection2csvController

Inherits:
ApplicationController
  • Object
show all
Defined in:
app/controllers/collection2csv_controller.rb

Instance Method Summary collapse

Instance Method Details

#convertObject



3
4
5
6
7
8
9
10
11
12
13
14
15
# File 'app/controllers/collection2csv_controller.rb', line 3

def convert
  klass =  params[:klass].constantize
  if params[:column_names].present?
    column_names = params[:column_names].split(',').to_a
  else
    column_names = klass.column_names
  end
  collection = klass.find(params[:ids])
  respond_to do |format|
    format.csv { send_data to_csv(collection,column_names)  ,:filename => "#{klass}_#{DateTime.now.to_formatted_s(:db)}.csv"
 }
  end
end

#to_csv(collection, column_names) ⇒ Object



17
18
19
20
21
22
23
24
# File 'app/controllers/collection2csv_controller.rb', line 17

def to_csv(collection,column_names)
  CSV.generate do |csv|
    csv << column_names.map(&:humanize)
    collection.each do |product|
  csv << product.attributes.values_at(*column_names)
    end
  end
end