My application accepts file uploads, with some metadata being stored in the DB, and the file itself on the file system. I am trying to make the metadata visible in the application before the file upload and post-processing are finished, but because saves are transactional, I have had no success. I have tried the callbacks and calling create\_or\_update() instead of save(), all to no avail. Is there a way to do this without re-writing the guts of ActiveRecord::Base? I've even attempted naming the method make() instead of save(), but perplexingly that had no effect.

The code below "works" fine, but the database is not modified until everything else is finished.

```
def save(upload)

uploadFile = upload['datafile']
originalName = uploadFile.original_filename
self.fileType = File.extname(originalName)

create_or_update()

# write the file
File.open(self.filePath, "wb") { |f| f.write(uploadFile.read) }
begin
  musicFile = TagLib::File.new(self.filePath())
  self.id3Title = musicFile.title
  self.id3Artist = musicFile.artist
  self.id3Length = musicFile.length
 rescue TagLib::BadFile => exc
    logger.error("Failed to id track: \n #{exc}")
end

if(self.fileType == '.mp3')
  convertToOGG();
end
create_or_update()

end

```

Any ideas would be quite welcome, thanks.