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,您可能需要用户下载并在自己的软件上打开。
我想允许用户单击我的视图页面中的按钮并打开一个 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,您可能需要用户下载并在自己的软件上打开。