resources :datafiles will create some default routes, but they don't include download. You need to add a member route for the download action.
http://www.engineyard.com/blog/2010/the-lowdown-on-routes-in-rails-3/ http://guides.rubyonrails.org/routing.html Luke On 2010-10-04, at 11:42 AM, Smashing wrote: > I'm perty new to rails and I have an app where I want to have secure > file downloads, so I can't just drop the files in public/data, I need > to use send_file. I found the post (pasted at bottom) that explained > how to do this. When I go to implement it, I wanted to try the > simplest thing first, so I have this code: > > datafiles_controller.rb: > def download > send_file('/file_uploads/Productivity.pdf', :disposition > => :attachment) > end > datafiles/index.html.erb > <%=button_to "Download File", :action=>'download'%> > > when I load index.html it gives the error "No route matches > {:action=>"download", :controller=>"datafiles"}" > so even though "resources :datafiles" is already in my routes.rb file, > I added: get "datafiles/download" > now the page loads, I click the "Download File" button and it gives me > the error "No route matches "/datafiles/download"" > > I vaguely remember reading that every def in a controller should > correspond to it's own erb file, so I created Views/datafiles/ > download.erb as a blank page. > But that didn't make any difference. I'm at a loss as to what I'm > doing wrong, can someone give me some suggestions? > > > post refered to above: > -------------------------------------------------------- > http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/9ad5649a7601045d/4d748526506abc59?lnk=gst&q=file+download#4d748526506abc59 >> Is there a way to retrieve a file off the server or hard drive? I >> have a program that creates a file and I would like a button to >> retrieve the file so the user can save it somewhere. Not ajax right >> now. > > # view > <%=button_to "Download File", :action=>'download'%> > # controller > def download > send_file(path_to_file, :disposition => :attachment) > end > send_file documentation > http://railsmanual.org/module/ActionController::Streaming/send_file/1... > -- > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

