ruby-on-rails – 流式CSV从Rails 3.2应用程序下载

ruby-on-rails – 流式CSV从Rails 3.2应用程序下载,第1张

概述我迫切希望在我的Rails 3.2.2应用程序中获得流式CSV下载. 我已经尝试了’csv_builder’宝石(https://github.com/dasil003/csv_builder),它宣传支持这个功能,但似乎Rails 3.2中有一些变化使它无法工作(它产生了一个应用启动时出现“未初始化的常量ActionView :: Template :: Handler”错误. 还有其他想法或解 我迫切希望在我的Rails 3.2.2应用程序中获得流式CSV下载.

我已经尝试了’csv_builder’宝石(https://github.com/dasil003/csv_builder),它宣传支持这个功能,但似乎Rails 3.2中有一些变化使它无法工作(它产生了一个应用启动时出现“未初始化的常量ActionVIEw :: Template :: Handler”错误.

还有其他想法或解决方案吗?谢谢!

编辑:为了澄清,我需要将模型的所有条目导出为CSV文件.有很多行,它是超时的…因此需要流式传输.我过去曾使用过逗号宝石(https://github.com/crafterm/comma),但此刻它也不支持流式传输.

解决方法 好的,经过一番研究后,我在控制器中将以下内容整合在一起.如果给予response_body一些可枚举的东西(这是一个单词吗?),它会流.此外,服务器需要能够流(我在Heroku上使用Unicorn).我非常想在控制器中没有所有这些东西,所以我的下一步是以某种方式提取出来.

format.csv {    @entrIEs = Entry.all    @columns = ["First name","Last name"].to_csv    @filename = "entrIEs-#{Date.today.to_s(:db)}"    self.response.headers["Content-Type"] ||= 'text/csv'    self.response.headers["Content-disposition"] = "attachment; filename=#{@filename}"    self.response.headers["Content-transfer-encoding"] = "binary"    self.response_body = Enumerator.new do |y|      @entrIEs.each_with_index do |entry,i|        if i == 0          y << @columns        end        y << [entry.first_name,entry.last_name].to_csv      end    end  }
总结

以上是内存溢出为你收集整理的ruby-on-rails – 流式CSV从Rails 3.2应用程序下载全部内容,希望文章能够帮你解决ruby-on-rails – 流式CSV从Rails 3.2应用程序下载所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1282930.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-09
下一篇2022-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存