Rails send_data 处置内联不起作用,csv 已自动下载而不是在新页面中打开

Rails send_data disposition inline doesn't work, csv got auto downloaded instead of open in a new page

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

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

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

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 文件旨在显示在新选项卡中。它不应该自动开始下载。这不是我想要的,我不知道是什么原因造成的。

我该如何解决这个问题?

谢谢

Chrome 并非旨在默认显示 .csv 文件(在撰写本文时)。 这是来自 google 搜索 ("cannot view csv chrome") 的参考: https://productforums.google.com/forum/#!msg/chrome/bEncfRIUclQ/Dc4aZL2R7loJ

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