Installez ImageMagick si vous ne l'avez pas sur votre machine brew install imagemagick
.
Puis dans notre Gemfile :
gem 'paperclip'
Puis bundle install
pour installer la dépendence.
Suivez la documentation de paperclip, vous pouvez ajouter la gestion des avatars dans votre modèle models/user.rb
:
class User < ActiveRecord::Base
has_attached_file :avatar, styles: { medium: "300x300>", thumb: "100x100>" },
default_url: '/assets/default_image.png'
validates_attachment_content_type :avatar, content_type: /\Aimage\/.*\Z/
end
Jouez les migration pour ajouter les champs d'avatar au modèle Userrake db:migrate
Vous avez aussi ajouter le bouton d’upload dans le formulaire de mise à jour du profil:
<div class="form-group">
<%= f.file_field :avatar %>
</div>
Ajoutez un helper pour éviter d'avoir à accèder à l'attribut pour chaque appel de la méthode url.
module ApplicationHelper
def avatar_url(user)
user.avatar.url
end
end
Pour afficher la photo, on utilise image_tag
qui est un helper de Rails suivi de l'url de l'image.
<%= image_tag avatar_url(current_user), class: "img-circle avatar-small" %>
Pour aller plus loin: