2016-08-21 43 views
2

assets/docs /Физика.pdfからファイルをダウンロードするリンクを追加する必要があります。 これを行う方法はわかりません。 私はここにそうしようとしています:ビューに -rails link_toファイルをダウンロードする

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

私は、エラーメッセージが出ます:

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

は私が間違って何をやっているの? /assets内のファイルを配置するときは、Railsのヘルパー#asset_pathを使用することができます

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

この[リンク](http://stackoverflow.com/questions/13164063/file-download-link-in-rails)を試してください。 – davidhu2000

+0

asset_path( '/ docs /Физика.pdf')%> ' – HarlemSquirrel

答えて

0

はこれを試してみてください、私を助けてください。

<%= link_to 'download', asset_path('/docs/Физика.pdf') %> 

ソース:http://guides.rubyonrails.org/asset_pipeline.html#asset-organization

+0

「ダウンロード」、「/assets/docs/Физика.pdf '%>」または「<%= link_to' download '助けてくれませんでした( [GET]と一致するルートがありません "/assets/docs/%D0%A4%D0%B8%D0%B7%D0%B8%D0%BA%D0%B0.pdf" –

+0

@StivenFrams解決策?私は同じエラーに直面しています –

4

あなたは、以下のようなステップを行うことができます。

ステップ1:ファイルを開くroutes.rb

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

ステップ2:私はあなたのcontrollerhome_controller.rbだったと仮定、あなたはこの林を置くE:

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

ステップ3:あなたのviewファイルで。

<%= link_to "download", download_pdf_path %> 

私はあなたがpublicフォルダにこのdocsフォルダを置く必要があることを示唆しています。例えば

: 奇妙なpublic/docs/*.pdf

+0

これは私のために働いた! – Belder

0

、あなたのlink_toヘルパーでHTMLのダウンロードの属性を使用すると、

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

が、これは将来的に役に立てば幸いトリックを行います!