Ruby on rails Rails在使用send_数据发送excel文件时显示渲染文本模板
我正在使用表单将数据发布到rails控制器。发送的数据是excel文件的二进制数据,控制器应回显该数据,以便浏览器触发下载。 (我必须这样做) 问题是我在Chrome中得到了一个警告:Ruby on rails Rails在使用send_数据发送excel文件时显示渲染文本模板,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在使用表单将数据发布到rails控制器。发送的数据是excel文件的二进制数据,控制器应回显该数据,以便浏览器触发下载。 (我必须这样做) 问题是我在Chrome中得到了一个警告: Resource interpreted as Document but transferred with MIME type application/vnd.openxmlformats-officedocument.spreadsheetml.sheet: "http://192.168.2.39:
Resource interpreted as Document but transferred with MIME type application/vnd.openxmlformats-officedocument.spreadsheetml.sheet: "http://192.168.2.39:3000/resources/export"
我觉得奇怪的是,Rails在请求末尾显示“呈现的文本模板”
以下是控制器操作:
def export
begin
cookies.delete(:download_token)
cookies[:download_token] = params[:download_token]
send_data Base64.decode64(params[:data]), :filename => 'Tasks.xls', :type => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=utf-8; header=present', :disposition => 'attachment'
rescue Exception => e
render nothing: true
end
end
这是导出操作输出的结束:
"application/x-www-form-urlencoded"
Rendered text template (0.0ms)
Sent data Tasks.xls (1.2ms)
Completed 200 OK in 5006ms (Views: 0.9ms | ActiveRecord: 0.0ms)
我使用的是Rails 4该请求来自一个表单,该表单以EXT js 4应用程序中的iframe为目标。
整个应用程序有一些html视图和一些使用ext js的视图。
我在html视图中使用turbolinks gem 文件实际上已发送,浏览器将触发下载。这只是我想摆脱的警告 更新
我禁用了TurboLink,但警告仍然存在。我在Chrome上找到了警告的修复程序。显然,Safari上的错误是每次下载时都会出现的错误,而不是我的应用程序特有的错误 在config/initializers/mime_types.rb中:
Mime::Type.register "vnd.openxmlformats-officedocument.spreadsheetml.sheet", :xls
在我的控制器中:
send_data Base64.decode64(params[:data]), :filename => 'Tasks.xls', :type => :xls, :disposition => 'attachment', :layout => false
这使得Chrome上的警告出现。希望能有所帮助。如果我的MIME类型解析不起作用,请查看此出色的解决方案,很高兴您将其修复+1。我将删除我的答案以避免混淆。