web-dev-qa-db-fra.com

Redemander des images existantes à un nouveau style en PaperClip & Rmagick

J'utilise PaperClip pour télécharger et redimensionnez automatiquement des photos dans My Rails application, et je l'aime. Seul problème est à peu près tous les mois que mon gestionnaire fou décide qu'il souhaite une nouvelle taille à afficher les photos dans. alors j'ajoute un nouveau style sur mon modèle photo et tout est bon pour de nouvelles photos, mais les photos préexistantes sont maintenant un problème. Maintenant que je commence à avoir plus de quelques photos à gérer avec i Besoin d'une manière programmatique de redimensionner des photos existantes. Peut-être y a-t-il une truc sur papier pour une telle chose? Je préférerais vraiment ne pas avoir à comprendre Rmagick et à écrire un script moi-même si je n'ai pas besoin.

62
tybro0103

Vous voulez le reprocess! Méthode de papierClip :: pièce jointe. Voir The Docs .

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

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

Aussi, selon les commentaires avant le reprocess! Méthode, il y a une trombone: Actualiser la tâche de râteau, ce qui pourrait être plus facile.

84
Robert Speicher

essayez cette tâche Rake fournie par PaperClip

rake Paperclip:refresh:missing_styles

Ref: https://github.com/thoughtbot/paperclip#posposit-processing

29
Naveed