我需要添加一个链接以从assets/docs/Физика.pdf下载文件,但我不知道如何操作。我正在尝试在视图中进行操作-
<%= link_to "download", '/Физика.pdf', :download => 'filename' %>
我收到一个错误信息:
No route matches [GET] "/%D0%A4%D0%B8%D0%B7%D0%B8%D0%BA%D0%B0.pdf"
我做错了什么? 请帮助我。
我需要添加一个链接以从assets/docs/Физика.pdf下载文件,但我不知道如何操作。我正在尝试在视图中进行操作-
<%= link_to "download", '/Физика.pdf', :download => 'filename' %>
No route matches [GET] "/%D0%A4%D0%B8%D0%B7%D0%B8%D0%BA%D0%B0.pdf"
routes.rb
。get 'download_pdf', to: "homes#download_pdf"
步骤2: 我假设你的controller
文件名是home_controller.rb
,请添加以下代码:
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 %>
docs
文件夹放在public
文件夹中。public/docs/*.pdf
。<%= link_to "download", download_path, target: "_blank"%>
第二步:路由
match 'download', to: 'home#download', as: 'download', via: :get
第三步:控制器内部
send_file 'public/pdf/user.png', type: 'image/png', status: 202
当将文件放置在/assets
目录中时,您可以使用Rails助手#asset_path
。
<%= link_to 'download', asset_path('/docs/Физика.pdf') %>
来源:http://guides.rubyonrails.org/asset_pipeline.html#asset-organization
资产组织 ==========奇怪的是,在您的link_to助手中使用HTML download属性即可完成此操作。
<%= link_to "Download", file.file(:original, false), download:true %>
download: file.filename
,而不是download: true
。 - IvanSelivanov
<%= link_to 'download', root_path << '/assets/docs/Физика.pdf' %>
对我来说最有效且最简单的方法是:
= link_to "Click to download", asset_path("logo.png"), download: true
步骤1:在你的routes.rb
文件中创建下载路由:
get 'download_pdf', to: "homes#download_pdf"
步骤2:将链接添加到您的视图
中:
<%= link_to "download", download_single_path(url: 'url', file_name: 'filename') %>
步骤三:在您的控制器homes_controller.rb
中添加操作,以获取您在link_to中传递的参数:
def download_pdf
require 'open-uri'
url = params[:url]
file_name = params[file_name]
data = open(url).read
send_data data, :disposition => 'attachment', :filename=>"#{file_name}.pdf"
end
文档说明了如何构建附件文件的下载链接,应该像这样
<a href="<%= user.avatar.attached? ? rails_blob_path(user.avatar, disposition: 'attachment') : '#' %>" target="_blank" download>Link</a>
<%= link_to '下载', '/assets/docs/Физика.pdf' %>
或者<%= link_to '下载', asset_path('/docs/Физика.pdf') %>
。 - HarlemSquirrel