Forum: Ruby on Rails Output non-HTML (CSV) from Rails

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
unknown (Guest)
on 2006-01-11 18:04
(Received via mailing list)
Hi,

I want to offer a CSV download of data in my Rails app (eg. An "Export
to Excel" link to grab the current view of tabulated data).

However, I can't seem to break-out of the Rails framework to output this
non-HTML data. Even if I eliminate my layout template from my view, the
most basic view (no HTML) will still wrap the output in
<html><body></body></html> tags.

Does anyone have a recommended way to do this within Rails?

Thank you!

   Matt

--
Matt C. Wagner
Information Security Analyst

Network Intrusion Detection
Security Operations Center
Corporate Information Security
Wells Fargo Bank
Adam D. (Guest)
on 2006-01-11 18:14
(Received via mailing list)
you need to change the Content-Type that you send to the browser to be
of type CSV.   Something like Content-type: application/vnd.ms-excel

http://railswiki.pdxruby.org/HowtoChangeTheContentType.html


-adam
Alex Y. (Guest)
on 2006-01-11 18:27
(Received via mailing list)
removed_email_address@domain.invalid wrote:
> Does anyone have a recommended way to do this within Rails?
>
In the controller:

   response.headers['Content-Disposition'] => 'attachment'
   response.headers['Content-Type'] => 'text/csv'
   render :text => @csv_contents, :layout => false
Bakki K. (Guest)
on 2006-01-11 22:02
(Received via mailing list)
Hi Matt,

Have you tried send_data or send_file which are " Methods for sending
files
and streams to the browser instead of rendering."
I have used send_data to send and image to the browser. Check out my
howto
...

http://wiki.rubyonrails.com/rails/pages/HowtoSecur...

-bakki kudva

On 1/11/06, removed_email_address@domain.invalid 
<removed_email_address@domain.invalid>
Hasan D. (Guest)
on 2006-01-12 00:31
(Received via mailing list)
Mr Wagner:
On Jan 11, 2006, at 8:02 AM, <removed_email_address@domain.invalid>
<removed_email_address@domain.invalid> wrote:
> Does anyone have a recommended way to do this within Rails?

render_without_layout 'template' which defaults to the same name as
your action.
Cheers,
Hasan D. <removed_email_address@domain.invalid>
This topic is locked and can not be replied to.