【问题标题】:Rails send_data disposition inline doesn't work, csv got auto downloaded instead of open in a new pageRails send_data 内联处理不起作用,csv 自动下载而不是在新页面中打开
【发布时间】:2015-10-10 00:26:46
【问题描述】:

我希望允许用户单击我的视图页面中的按钮并打开 csv 文件的新页面,而不是自动下载 csv 文件。这是视图页面中的按钮:

<%= link_to "Export as CSV", {:action => "index", :format => :csv}, :target => '_blank' %>

当用户点击上面的按钮时,它会在我的控制器中触发 index 动作。这是控制器索引操作的一部分:

respond_to do |format|
    format.html
    format.csv do
        send_data @resultCSV, :disposition => 'inline', :filename => 'csv_search_results.csv', type: Mime::CSV
    end
end

当我在 Chrome 浏览器中单击该按钮时,它会打开一个新选项卡并立即关闭该新选项卡并开始下载 csv 文件。

但我使用了“:disposition => 'inline'”。 csv 文件旨在显示在新选项卡中。它不应自动开始下载。这不是我想要的,我不知道是什么原因造成的。

我该如何解决这个问题?

谢谢

【问题讨论】:

    标签: ruby-on-rails csv content-disposition


    【解决方案1】:

    默认情况下,Chrome 不打算显示 .csv 文件(在撰写本文时)。 这是来自谷歌搜索的参考(“无法查看 csv chrome”): https://productforums.google.com/forum/#!msg/chrome/bEncfRIUclQ/Dc4aZL2R7loJ

    当您使用 Rails 时,如果您确实需要在浏览器中显示它,您可能希望使用已解析的视图创建一个视图,但最终如果您希望用户获得一个 csv,您可能希望用户下载并打开它它在他们自己的软件上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-27
      • 1970-01-01
      • 1970-01-01
      • 2020-12-04
      • 1970-01-01
      • 2013-09-05
      • 1970-01-01
      • 2018-01-27
      相关资源
      最近更新 更多