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") %>