2009-10-15 4 views
18

Ich habe 2000 Bilder zu meiner Bilder Tabelle hinzugefügt und ich benutze das Paperclip Plugin, um Daumen zu erstellen. Ich frage mich, ob es eine Möglichkeit gibt, durch die Datenbank zu gehen und ein weiteres Element hinzuzufügen.Wie kann ich ein Paperclip-Bild nach der Aufnahme in die Datenbank skalieren?

Zum Beispiel, wenn ich die Bilder hinzugefügt hatte ich folgendes in meinem Modell:

has_attached_file :image, :styles => { :medium => "300x300>", :thumb => "100x100>" } 

Aber jetzt möchte ich ein :large Attribut hinzufügen und haben es auf jedes Bild angewendet, die bereits in meinem Tisch ist. Etwas wie:

has_attached_file :image, :styles => { :large => "800x800>", :medium => "300x300>", :thumb => "100x100>" } 

Ist das möglich? Oder müsste ich alle 2000 Bilder neu hinzufügen?

Antwort

42

Wenn Paperclip als Plugin installiert ist, können Sie dies tun:

rake paperclip:refresh:thumbnails CLASS=Screenshot 

wo Screenshot der Name der Klasse mit der Befestigung ist.

Wenn es als ein Juwel installiert ist, tut dies innerhalb Skript/Konsole:

Screenshot.all.each {|s| s.image.reprocess! } 

ersetzen Screenshot mit den entsprechenden Klassennamen

+0

Die zweite Methode ist sehr hilfreich, ich habe die erste mit einer undefinierten Methodenausnahme nicht bestanden. – albb

+2

Wenn Sie eine Menge Screenshots haben, sollten Sie #find_each verwenden. Screenshot.find_each {| s | s.image.reprocess! } – Schneems

+0

große Zeit sparen - danke !! –

6
rake paperclip:refresh:thumbnails 
+2

Für mich präziser: Rake Büroklammer: Refresh: Thumbnails CLASS = MyClass – pixelearth

Verwandte Themen