如何使用rake任务在Heroku上保存文件?

时间:2014-08-22 19:05:25

标签: ruby-on-rails csv heroku rake

我有一个rake任务,使用mongoid更新mongo db中的某些字段。 我使用CSV.open创建一个文件来存储异常的错误,而不是 以编程方式更新。当我在本地运行它时,它只是创建CSV文件 在应用程序的根目录中。但是当我在Heroku上运行rake时,它似乎并不存在 将文件保存在我可以访问它的任何地方。这是我的代码:

require 'csv'
CSV.open("errors.csv", "w") do |csv|
  csv << ["Email", "Jacket Size"]
  errors.each do |e|
    csv << e
  end
end

1 个答案:

答案 0 :(得分:0)

Heroku文件系统是只读的,因此您的rake任务无法将此文件保存在应用程序根目录中。使用Heroku,您只能保存到/ tmp和/ log目录。您可以在/ tmp目录中创建CSV文件,在处理完毕后,您必须将其保存在某些外部存储(如Amazon S3)或通过邮件发送,无论您认为哪种情况更好。