он умеет загружать файл, умеет конвертировать файл в другой формат. также может работать с rmagick, который умеет дофига каких вещей делать с картинкой. и да он умеет сохранять файлы в хранилище, которое может быть как на удаленном сервере, так и в папке public внутри приложения.
можно задавать в нем процедуры, которые будут происходить после загрузки файла, после создания версий файла (файл большого размера, среднего и малого, хитровыезжаеного размера), а потом можно будет получать ссылки к файлам нужного размера