【发布时间】:2010-02-04 11:36:05
【问题描述】:
我正在尝试在 Rails 应用程序中提供动态生成的文件,因此当用户单击特定链接时,会生成文件并使用 send_data 将文件发送到客户端。
该文件不打算重复使用:是一个短文本文件,重新生成应该非常便宜,因为它不会被下载那么多;但如果有必要或方便,我可以将其存储在数据库中,因此只生成一次。
首先,我想在内存中生成文件,然后在控制器中发送。我正在尝试归档这样的内容:
def DownloadsController < ApplicationController
def project_file
project = Project.find(params[:id])
send_data project.generate_really_simply_text_file_report
end
end
但我不知道如何在内存中生成流,所以文件系统中没有创建文件。
另一种选择是在 rails app tmp 目录中生成具有随机名称的文件并从那里发送,但随后该文件将保留在那里,这是我不希望发生的事情。
编辑:如果我没记错的话,send_file 会阻止请愿,直到文件被发送,所以它可以工作......
还有其他建议或意见吗?
提前致谢
【问题讨论】:
标签: ruby-on-rails file dynamic-data