我的Rails3应用程序有一个特定的请求,它会动态生成一个大的CSV(20mb +),然后提示用户下载文件(在生成时)。
我注意到使用“render:text => proc”从Rails 2.3.x升级时不再有效。我现在正致力于一个解决方案,让我能以类似的方式保持工作。
即时生成文件的事实并没有引起任何痛苦。只有某些用户才能访问此功能(想想月度报告等)。
我基本上计划采用两种不同的方法, 1.添加一个自定义渲染器,让我再次使用proc 2.在线程中生成文件,并使用“send_data”在生成文件时尝试流式传输文件。
我还没有实现,所以如果有人能提供一些见解,那么在代码升级时可能会有所帮助。
感谢!!!
答案 0 :(得分:0)
我正在研究一个非常类似的问题,我决定派csv_builder来添加流媒体支持。我有一个工作原型版本,它有一个模板处理程序返回一个proc而不是一个字符串。在proc中,我连接csv_builder直接写入输出流。我必须使用一些愚蠢的技巧来使它在测试和开发中工作,因为TestResponse的输出不是CSV期望的完整io流。