CarrierWave
Classier solution for file uploads for Rails, Sinatra and others
...It works well with Rack based web applications, such as Ruby on Rails. CarrierWave gives you a store for permanent storage, and a cache for temporary storage. You can use different stores, including filesystem and cloud storage. Most of the time you are going to want to use CarrierWave together with an ORM. It is quite simple to mount uploaders on columns in your model, so you can simply assign files and get going. Make sure you are loading CarrierWave after loading your ORM, otherwise you'll need to require the relevant extension manually. Now you can cache files by assigning them to the attribute, they will automatically be stored when the record is saved. ...