2012-05-21 45 views
2

我使用回形针创建文件上传!文件上传,因为它应该。 比我加了这样的文件下载方法:Ruby on rails文件下载链接

def download 
    sample = Sample.find(params[:id]) 


    send_file upload.sample.path, 
    :filename => upload.sample_file_name, 
       :type => upload.sample_content_type, 
    :disposition => 'attachment' 
    flash[:notice] = "Your file has been downloaded" 
    end 

但我无法弄清楚,我应该把我的表演动作,这样我就可以下载文件?

我得到尽可能的:

<td><%= @sample.upload_file_name =%></td> 
    <%= link_to 'Download', :action => :download, :path =>@sample.upload.url, :type => @sample.upload_content_type %> 

但它显示错误:无法找到ID样品=下载

谁能帮助我?

+0

岂不链接是与ID参数你的行动? –

+0

你的意思是这样的: ​​<%= link_to'Download',:action =>'download',:id => @ sample.upload.path%> ? 我是一个相当新的铁轨btw – Karlis

+0

由您的代码生成的网址将导致显示操作... –

回答

2

认为你需要改变你的link_to发送:ID(这是控制器动作使用参数寻找[:编号])

<%= link_to 'Download', :action => :download, :id => @sample.id %> 

索兹Karlis被写为您发布:d

0

=的link_to '下载',@ sample.upload.path 这是最简单的方法))

+0

mmm,最简单但不允许访问权控制,并且需要路径在公共文档根下 –

+0

我不认为一个不知道如何配置路由的人,什么是路径帮助者了解IO阻塞以及如何配置回形针... –

0

假设你正确设置命名的路由下载,你可以说

<%= link_to 'Download', download_sample_path(@sample) %>