Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails在使用send_数据发送excel文件时显示渲染文本模板_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails Rails在使用send_数据发送excel文件时显示渲染文本模板

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:

我正在使用表单将数据发布到rails控制器。发送的数据是excel文件的二进制数据,控制器应回显该数据,以便浏览器触发下载。 (我必须这样做)

问题是我在Chrome中得到了一个警告:

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。我将删除我的答案以避免混淆。