我需要能够在请求期间编写临时文件以供使用。
在本地,我可以成功使用以下内容:
tempfile = File.open(a.original_filename,'w')
tempfile.write_nonblock(a.body)
paperclip stuff........
tempfile.close
这很好用,但不是Heroku ......我怎么能用Heroku的限制来完成上述工作:link text
我不理解如何将上述内容翻译成:#{RAILS_ROOT}/tmp/myfile_#{Process.pid}
感谢您提供的任何帮助。
答案 0 :(得分:3)
你试过tempfile = File.open("#{RAILS_ROOT}/tmp/myfile_#{Process.pid}",'w')
吗?
正确的语法是tempfile = File.new("#{RAILS_ROOT}/tmp/myfile_#{Process.pid}",'w')
(参见评论)
答案 1 :(得分:-2)
如果您必须使用回形针,我会为您提供解决方案。将此类作为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