Rails – 使用Tempfile在Heroku上写?

我需要能够在请求期间编写临时文件以供使用。

在本地我可以成功使用以下内容:

tempfile = File.open(a.original_filename,'w') tempfile.write_nonblock(a.body) paperclip stuff........ tempfile.close 

这很好用,但不适用于Heroku ……我如何使用Heroku的限制来完成上述操作: 链接文本

我不明白如何将上述内容翻译成: #{RAILS_ROOT}/tmp/myfile_#{Process.pid}

感谢您在这里提供的任何帮助。

如果你不得不用回形针做东西,我有一个解决方案。 将此类作为heroku_compliant_file.rb包含在lib文件夹中

 class HerokuCompliantFile < StringIO def initialize(str,filename,content_type) @original_filename = filename @content_type = content_type super(str) end end 

在包含回形针的模型中 -

 def insert_a_hunk_of_string_into_paperclip(some_object) f = HerokuCompliantFile.new(some_object.render,"myfile_#{Process.pid}","application/pdf") self.paperclip_model = f save end 

你试过tempfile = File.open("#{RAILS_ROOT}/tmp/myfile_#{Process.pid}",'w')


正确的语法是tempfile = File.new("#{RAILS_ROOT}/tmp/myfile_#{Process.pid}",'w') (见评论)