2010-06-04 9 views
58

He estado usando paperclip para cargar y cambiar el tamaño de las fotos en mi aplicación Rails, y me encanta. El único problema es cada dos meses que mi gerente loco decide que quiere un nuevo tamaño para mostrar las fotos. Así que agrego un nuevo estilo en mi modelo de fotografía y todo es bueno para las fotos nuevas, pero las fotos preexistentes ahora son un problema . Ahora que estoy empezando a tener más de unas pocas fotos para tratar, necesito una forma programática para cambiar el tamaño de las fotos existentes. Tal vez hay algún truco de clip para tal cosa? Prefiero no tener que descubrir RMagick y escribir un guion si no es necesario.Cambiar el tamaño de las imágenes existentes al nuevo estilo en clip y RMagick

+1

Niza Pregunta Estimado 1 !!! –

Respuesta

79

Desea el método reprocess! de Paperclip :: Attachment. Ver the docs.

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

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

Además, de acuerdo con los comentarios anteriores el método reprocess!, hay un clip: refrescar tarea Rake, que podría ser más sencillo.

+6

gracias! el clip: refrescar el rastrillo funcionó muy bien – tybro0103

+0

manteniendo ese comando en mis favoritos, gracias :) – Richlewis

+4

Aquí está la documentación para regenerar sus estilos de clip. https://github.com/thoughtbot/paperclip/wiki/Thumbnail-Generation El comando debe ser 'rake paperclip: refresh: YOUR_STYLE_HERE CLASS = User' – Hengjie

28

tratar esta tarea rastrillo proporcionada por un clip

rake paperclip:refresh:missing_styles 

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

+5

... o hazlo solo por un modelo: 'clip de papel rastrillo: refresh: missing_styles CLASS = YourModelName' – Arcolye

+1

No olvides configurar el entorno de rieles con la tarea. 'rake paperclip: refresh: missing_styles CLASS = YourModelName RAILS_ENV = production' –

Cuestiones relacionadas