Getting content-disposition in the HTTP response headers.

Hi,

I am quite new to Ruby and Rails, although I have cracked most of my puzzles by googling and trying I just can't get this one to get going for me.

Here is my problem:

I am trying to cough up a nice text/csv file from my browser and would like to set this:

  Content-type: text/csv   Content-disposition: attachment; filename="the_file.csv"

in my HTTP response header, but so far I haven't found any ''tricks'' to achieve the 'Content-disposition' part.

Any help would be dearly appreciated.

Kind regards, Hartog.

in

class ApplicationController < ActionController::Base   before_filter :set_headers

  private     def set_headers       @headers["Content-Type"] = "text/csv"       @headers["Content-disposition"] = 'attachment; filename="the_file.csv"'     end end

very easy :slight_smile:

> Hi, > > I am quite new to Ruby and Rails, although I have cracked most of my > puzzles by googling and trying I just can't get this one to get going > for me. > > Here is my problem: > > I am trying to cough up a nice text/csv file from my browser and would > like to set this: > > Content-type: text/csv > Content-disposition: attachment; filename="the_file.csv" > > in my HTTP response header, but so far I haven't found any ''tricks'' > to achieve the 'Content-disposition' part. > > Any help would be dearly appreciated.

in

class ApplicationController < ActionController::Base   before_filter :set_headers

  private     def set_headers       @headers["Content-Type"] = "text/csv"       @headers["Content-disposition"] = 'attachment; filename="the_file.csv"'     end end

Thank you!

very easy :slight_smile:

Once you how, yes indeed. :->

I do however think that render() (from: ApplicationController::Base) should allow for a ':disposition' option as well.

Where should I go for such a feature request?

Grtz, Hartog

I have a problem that may be resolved with this, if I understand it correctly. I have one controller/view that keeps rendering as text/ plain ... that's how the headers come back from the server. My content type is set correctly in the header in my layout file.

Can I do something similar in my specific controller to force it to render as text/html instead of text/plain?

Thanks

Zeff

very easy :slight_smile:

Once you how, yes indeed. :->

I do however think that render() (from: ApplicationController::Base) should allow for a ‘:disposition’ option as well.

send_data the_csv_data, :filename => ’ data.csv’, :type => ‘text/csv’

http://api.rubyonrails.org/classes/ActionController/Streaming.html#M000092

Where should I go for such a feature request?

Submit requests, bugs, and patches at http://dev.rubyonrails.org/

jeremy

hartog wrote:

Content-type: text/csv Content-disposition: attachment; filename="the_file.csv"

http://www.rubyinside.com/railstips/tag/send_file