2013-10-03 46 views
0

我想在rails tmp目录内添加一个额外的目录。在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 

任何想法?

回答

0

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

mkdir tmp 

touch tmp/.keep 

mkdir tmp/new_folder 

touch tmp/new_folder/.keep 

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

完成后,将/ tmp添加回您的.gitignore,以免意外将任何/ tmp/*文件推送到Heroku。

+0

好的开始,但'.gitignore'中的默认值是忽略'/ tmp',所以这样做还不行。 – zwippie

0

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

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