rails link_to下载文件

Sti*_*ams 5 ruby-on-rails link-to

我需要添加一个链接来从assets/docs /Физика.pdf下载文件我不知道该怎么做.我想在这里这样做:在视图中 -

<%= link_to "download", '/??????.pdf', :download => 'filename' %>
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息:

No route matches [GET] "/%D0%A4%D0%B8%D0%B7%D0%B8%D0%BA%D0%B0.pdf"
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?请帮帮我

Kha*_*ham 6

您可以执行以下步骤:

第1步:打开文件routes.rb

get 'download_pdf', to: "homes#download_pdf"
Run Code Online (Sandbox Code Playgroud)

Step2:我认为你controllerhome_controller.rb,你把这一行:

def download_pdf
  send_file "#{Rails.root}/app/assets/docs/??????.pdf", type: "application/pdf", x_sendfile: true
end
Run Code Online (Sandbox Code Playgroud)

第3步:在你的view文件中.

<%= link_to "download", download_pdf_path %>
Run Code Online (Sandbox Code Playgroud)

我建议你把这个docs文件夹放在public文件夹中.

例如: public/docs/*.pdf


vid*_*unj 6

第1步:视图

<%= link_to "download", download_path, target: "_blank"%>
Run Code Online (Sandbox Code Playgroud)

第2步:路由

match 'download', to: 'home#download', as: 'download', via: :get
Run Code Online (Sandbox Code Playgroud)

第3步:内部控制器

send_file 'public/pdf/user.png', type: 'image/png', status: 202
Run Code Online (Sandbox Code Playgroud)


Has*_*hod 1

尝试这个:

\n\n
<%= link_to 'download', root_path << '/assets/docs/\xd0\xa4\xd0\xb8\xd0\xb7\xd0\xb8\xd0\xba\xd0\xb0.pdf' %>\n
Run Code Online (Sandbox Code Playgroud)\n