61 votes

Redimensionner des images existantes dans un nouveau style avec paperclip et RMagick

J'ai utilisé paperclip pour télécharger et redimensionner automatiquement des photos dans mon application Rails, et j'adore ça. Le seul problème, c'est que tous les deux mois environ, mon manager fou décide qu'il veut une nouvelle taille pour afficher les photos. J'ajoute donc un nouveau style dans mon modèle de photo et tout va bien pour les nouvelles photos, mais les photos préexistantes posent maintenant problème. Maintenant que je commence à avoir plus que quelques photos à gérer, j'ai besoin d'un moyen programmatique pour redimensionner les photos existantes. Peut-être existe-t-il une astuce de trombone pour une telle chose ? Je préférerais vraiment ne pas avoir à comprendre RMagick et à écrire un script moi-même si je n'y suis pas obligé.

84voto

Robert Speicher Points 8292

Vous voulez le reprocess! de Paperclip::Attachment. Voir les docs .

class User < ActiveRecord::Base
  has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }
end

# Console...
>> User.find_each { |u| u.avatar.reprocess! }

De plus, selon les commentaires avant le reprocess! il y a une tâche paperclip:refresh Rake, qui pourrait être plus facile.

29voto

Naveed Points 4948

Essayez cette tâche de rake fournie par paperclip

rake paperclip:refresh:missing_styles

Réf : https://github.com/thoughtbot/paperclip#post-processing

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X