Send some text as a csv file?


#1

I have a table on a page, and i want a link to download the table data
as a csv. One way to do this would be to have my model class build a
file, and pass the filename back to the controller, which uses send_file
to send it to the user. But, this seems a bit heavy handed - it’s a
small amount of data, which is subject to change, and i don’t want a
load of files hanging around if i can help it.

Is there a simple way to just generate some text and push it back as a
file? eg

  1. use a simple view which is rendered normally in the controller, and
    change the link_to tag to download the results instead of render it?
    (if so, how do i set the filename?)

  2. have a normal link_to tag and have the controller build the text
    itself (it’s just going to be an array join effectively) and push the
    text back as a file.

Any advice welcome - thanks!
max


#2

On Apr 29, 10:57 am, Max W. removed_email_address@domain.invalid
wrote:

I have a table on a page, and i want a link to download the table data
as a csv. One way to do this would be to have my model class build a
file, and pass the filename back to the controller, which uses send_file
to send it to the user. But, this seems a bit heavy handed - it’s a
small amount of data, which is subject to change, and i don’t want a
load of files hanging around if i can help it.

Have a look at send_data.

Fred


#3

Perfect, thanks (again!) Fred. I should have worked that out myself
really…

max