When dealing with Tempfile
s in Ruby it's important to remember that when a tempfile object gets deallocated, the referenced file gets deleted as well.
require 'tempfile'
def foo
Tempfile.new.path
end
path = foo # => "/tmp/20210723-30107-1h52x7"
# Soon after:
File.exists?(path) # => true
# But wait for it..
File.exists?(path) # => false
Top comments (1)
Correct. Once I needed to use Tempfile because was dealing with files in docker containers. To prevent losing the file I set it up to make a copy to a designated folder so that the process could finish with no risk of losing the file.