Rails CSV附件在浏览器中打开而不是下载

时间:2012-10-08 15:49:26

标签: ruby-on-rails file csv attachment

在我的rails 3应用程序中,我提供了一个CSV模板供用户下载。而不是下载它只是在新选项卡中打开文本。这是代码:

<a href="/templates/myFile.csv" target="_blank">click here</a>

这对我以前有用,我不知道有什么可以改变来打破它。与此类似的其他问题建议添加target='_blank'或更改标题,但我没有太多运气。

我认为它不应该有所作为,但是这个链接是在一个模态中,谁的身体来自这里:

<div class="modal hide" id="helpModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <%= modal_header "Help" %>
   <div class="modal-body">
    <%= render 'help' %>
  </div>
  <div class="modal-footer">
    <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
  </div>
</div>

2 个答案:

答案 0 :(得分:5)

您可以使用send_file方法:

def download_file(file_path)
   send_file(file_path, :type => 'text/csv', :disposition => "attachment")
end

您可以将此方法添加到控制器和路线,然后在您的视图中使用它:

link_to "Download", download_file_path('some_file.csv')

答案 1 :(得分:0)

target =“_ blank”将在新标签页中打开该文件。但这取决于浏览器设置是否在选项卡中打开文件或询问是否要下载文件。