【发布时间】:2013-01-07 11:10:23
【问题描述】:
在不将文件写入磁盘的情况下,是否可以在 Ruby 中编写以下代码?
temp_file = 'path/to/file.csv'
users = [a@b.c, c@b.a]
CSV.open(temp_file, "w") do |csv|
csv << data_for_report
end
Reports.sendreport users temp_file
File.delete(temp_file)
Reports.sendreport 附加一个文件并发送电子邮件,所以它需要是一个文件...
【问题讨论】:
-
所以你想要一串逗号分隔的值?那时你需要 csv 吗?你能用逗号连接你的列,用换行符连接你的行吗?
-
哦,sendreport 函数发送一封带有 csv 文件的邮件。所以我真的需要它成为一个文件......
-
你是说sendreport方法从磁盘读取文件?
-
正确.. 它从光盘中读取文件并将其附加到电子邮件中。现在的问题是,是否有办法将文件作为文件保存在内存中。
-
如果您无法更改
Reports,那么您可能正在以正确的方式进行操作。获得一段内存来假装它是一个磁盘,这样Reports可以从中读取,这可能比它的价值更麻烦。