Refile

Refile is a modern file upload library for Ruby applications. It is simple, yet powerful.

Add the gem

gem "refile", require: "refile/rails"
gem "refile-mini_magick"

Install Imagemagic

brew install imagemagick # OS X
sudo apt-get install imagemagick # Ubuntu

Add attachement to your model

attachment :profile_image

generate the migration

rails generate migration add_profile_image_to_users profile_image_id:string
rake db:rakemigrate

Add an attachment field to your form

<%= form.attachment_field :profile_image %>

Set up strong parameters:

params.require(:user).permit(:profile_image)

And start uploading! Finally show the file in your view:

<%= image_tag attachment_url(@user, :profile_image, :fill, 300, 300, format: "jpg") %>