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.

Reply via email to