gpt4 book ai didi

ruby-on-rails - 如何在后台任务中生成 CSV 文件?

转载 作者:行者123 更新时间:2023-12-04 05:44:40 24 4
gpt4 key购买 nike

我们允许用户以 CSV 格式下载他们的所有数据,但我们发现对于很多用户(他们有大量数据)我们确实需要在后台生成 CSV 文件然后提供给他们稍后下载的链接。

我知道如何在 View 中动态生成 CSV 文件,但我并不完全清楚在后台任务中生成它的最佳方式。

我目前正在使用 csv_builder在 View 中生成 CSV 文件......所以能够仍然使用它并以某种方式将其直接输出到 CSV 文件中,然后我可以使用回形针上传到 S3 ......但这可能太棒了牵强附会。

最佳答案

我遇到了类似的问题,但使用了内置的 Rails CSV 库而不是 csv_builder(我对此一无所知)。

在我的模型中,我有一种生成 csv 并在 s3 上保存为 paerclip 附件的方法:

def csv_export
@entries = self.entries
@filename = "naming my file"
CSV.open("#{Rails.root.to_s}/tmp/#{@filename}", "wb") do |csv| #creates a tempfile csv
csv << ["Date & Time", "Name", "Email"] #creates the header
@entries.each do |e|
csv << [e.created_at, e.name, e.email] #create new line for each item in collection
end
end

self.update_attribute(:csv_report, File.open("#{Rails.root.to_s}/tmp/#{@filename}"))
#saves tempfile as paperclip attachment
end

我在 rake 任务中调用此方法,该任务将卸载到延迟的作业 worker。

所以在rake任务中:Object.delay.csv_export

关于ruby-on-rails - 如何在后台任务中生成 CSV 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8788307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com