到目前为止,我已经成功设置了CarrierWave,以便它可以上传许多文件,包括.pdf,.mp3,.wav,.mp4和.mov。真棒,这对我来说非常成功。
我现在要做的是显示这些上传。在那个显示器上,我想要两个链接,一个用于下载上传的文件,另一个用于查看上传的文件。目前,在我尝试为用户创建下载文件的方式时,查看上传的文件是有效的。
目前,以下是允许用户查看/收听/观看上传文件的代码:
<% @user.uploads.each do |upload| %>
<tr>
<td><%= link_to upload.name, upload.attachment_url.to_s %></td>
<td class="right_align"><%= upload.to_a_date %></td>
<td class="right_align"><%#= upload.file_size %></td>
</tr>
<% end %>
点击上面的链接可以让用户查看上传内容。我如何允许用户下载相同的内容?这给了我正确的路径,但当我点击链接时,它会查看文件而不是下载它。
我还尝试使用以下代码在html5中执行此操作:
<a href="#{upload.attachment_url.to_s}" download>Download</a>
这不会下载正确的文件。
答案 0 :(得分:0)
为此创建单独的操作并使用Rails send_file
方法:
def download_file
upload = Upload.find(params[:id])
send_file upload.attachment.url
end