2016-08-21 2 views
2

Мне нужно добавить ссылку для загрузки файла из активов/документов/Физика.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" 

Что я делаю неправильно? Помогите мне пожалуйста

+0

попробуйте это [ссылка] (http://stackoverflow.com/questions/13164063/file-download-link-in-rails). – davidhu2000

+0

Возможно, просто '<% = link_to 'download', '/assets/docs/Физика.pdf'%>' или '<% = ссылка_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

Вы можете сделать шаги, как показано ниже:

Step1: Открыть файл routes.rb

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

Step2: Я предположил, ваш controller был home_controller.rb, вы помещаете этот lin е:

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

Step3: В файле view.

<%= link_to "download", download_pdf_path %> 

Я полагаю, что вы должны поставить эту docs папку в папке public.

Например: public/docs/*.pdf

+0

Это сработало для меня! – Belder

0

Как ни странно, с помощью HTML загрузить атрибут в вашем помощнике link_to делает трюк

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

Надеется, что это помогает в будущем!