2016-08-21 71 views
2

我需要添加一个链接从assets/docs /Физика.pdf下载文件 我不知道该怎么做。 我试图使这里做:鉴于 -rails link_to download file

<%= link_to "download", '/Физика.pdf', :download => 'filename' %> 

我得到一个错误信息:

No route matches [GET] "/%D0%A4%D0%B8%D0%B7%D0%B8%D0%BA%D0%B0.pdf" 

我在做什么错? 请帮助我

+0

试试这个[link](http://stackoverflow.com/questions/13164063/file-download-link-in-rails)。 – davidhu2000

+0

也许只是'<%= link_to'下载','/assets/docs/Физика.pdf'%>'或'<%= link_to'下载',asset_path('/ docs /Физика.pdf')%>' – HarlemSquirrel

回答

0

试试这个:

<%= link_to 'download', root_path << '/assets/docs/Физика.pdf' %> 
+0

没有帮助( 没有路线匹配[GET]“/assets/docs/%D0%A4%D0%B8%D0%B7%D0%B8%D0%BA%D0%B0.pdf” –

+0

@StivenFrams你有没有得到解决方案?我面临同样的错误 –

4

你可以做的步骤如下:

第一步:打开文件routes.rb

get 'download_pdf', to: "homes#download_pdf" 

第二步:我认为你的controllerhome_controller.rb,你把这个林E:

def download_pdf 
    send_file "#{Rails.root}/app/assets/docs/Физика.pdf", type: "application/pdf", x_sendfile: true 
end 

第三步:在你view文件。

<%= link_to "download", download_pdf_path %> 

我建议你应该把这个docs文件夹中的文件夹public

例如: public/docs/*.pdf

+0

这对我有效! – Belder

0

奇怪的是,在你的link_to助手使用HTML下载属性的伎俩

<%= link_to "Download", file.file(:original, false), download:true %> 

希望这有助于在未来!