在Heroku上的Rails tmp目录中添加一个额外的目录

时间:2013-10-03 23:38:17

标签: ruby-on-rails heroku

我正在尝试在rails tmp目录中添加一个额外的目录。

#Config/initializers/prince.rb

begin
  Dir.mkdir(Rails.root.join('tmp/prince'))
rescue Exception => e
  # Directory already exists
  puts "Error creating tmp/prince directory"
  puts e.message
end

在我的本地机器上执行它可以正常工作。在heroku上,它打破了:

Error creating tmp/prince directory
No such file or directory - /tmp/build_1c02fc8d-e053-46c6-8449-57036a89044e/tmp/prince

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我也有这个问题。我发现的最好方法是在开发机器上创建文件夹并将其推送到Heroku。 首先,您必须从.gitignore文件中删除/ tmp然后..

mkdir tmp

touch tmp/.keep

mkdir tmp/new_folder

touch tmp/new_folder/.keep

创建的.keep文件为空,但必须能够上传它。 git忽略空文件夹。

完成后,将/ tmp添加回.gitignore,这样就不会意外地将任何/ tmp / *文件推送到Heroku。

答案 1 :(得分:0)

我建议使用Dir.mktmpdir在heroku上创建tmp目录,如果你想在其中写一些内容。

def apply_watermark
  Dir.mktmpdir do |tmpdir|
  ...
  save_watermarked_file(watermarked_local_file)
end