Rails / Haml打开链接为“另存为”

时间:2013-06-10 15:00:47

标签: ruby-on-rails haml

我必须提供一些文件供用户直接下载。但如果它们是一些常见类型(如.mp3,.pdf),则客户端浏览器通常会尝试直接显示它们。这不是隐含的行为。我需要一些不显示文件的辅助方法,但会打开“另存为”对话窗口。

这样的东西
= link_to_save_as "Download file", @resource.url

Rails中是否有一些现成的辅助方法?

如果没有,是否有一些宝石提供该功能?

如果没有,是否可以自己实现(如果浏览器不以某种方式禁止此操作)?

1 个答案:

答案 0 :(得分:2)

您可能希望将send_file添加到控制器操作中。请在此处查看docs

可能类似于:

def download_file(filename)
  # You obviously need some restrictions on what can be requested 

  send_file '/path/to.mp3', :disposition => 'attachment'
end