Sha256: 0b95ed583a09d6fb633c272da3a9586da30bffec1d5b31cb64c42301e91b8952
Contents?: true
Size: 1.12 KB
Versions: 5
Compression:
Stored size: 1.12 KB
Contents
module Dossier class ReportsController < ApplicationController def show report = report_class.new(params[:options] || {}) report.run respond_to do |format| format.html do begin render template: "dossier/reports/#{report_class.report_name}", locals: {report: report} rescue ActionView::MissingTemplate => e render template: 'dossier/reports/show', locals: {report: report} end end format.json do render :json => report.results.hashes end format.csv do set_content_disposition! self.response_body = StreamCSV.new(report.raw_results.arrays) end format.xls do set_content_disposition! self.response_body = Xls.new(report.raw_results.arrays) end end end private def report_class Dossier.name_to_class(params[:report]) end def set_content_disposition! headers["Content-Disposition"] = %[attachment;filename=#{params[:report]}-report_#{Time.now.strftime('%m-%d-%Y_%H-%M-%S')}.#{params[:format]}] end end end
Version data entries
5 entries across 5 versions & 1 rubygems