2012-04-25 8 views
13

tengo un problema con el clip (3.0.2) después de la actualización a los rieles 3.2 (desde 3.0.10).Paperclip cambia la ruta de las imágenes después de la actualización a los rieles 3.2

Originalmente el camino de una sola imagen fue:

"http://localhost:3000/system/photos/94/small/AudiLogo.jpg?1335392139" 

y después de la actualización de este tipo de imágenes no muestran una vez más !, pero si puedo subir una foto nueva Esto mostrará bien en la página, pero el nuevo camino ese uso es:

"localhost:3000/system/products/photos/000/000/094/smal/AudiLogo.jpg?1335392139" 

¿Qué pasó en la actualización? Hay alguna solución para convertir el viejo camino a nuevo?

Intento con "rake paperclip: refresh: missing_styles" pero dos veces no funciona.

La sección de configuración del clip es esto.

has_attached_file :photo, 
     :processors => lambda { |a| 
         if a.external? 
           [:thumbnail] 
         else 
           [:thumbnail,:watermark] 
         end 
         }, 
     :styles => { 
       :slider => { :geometry => "350x312#", :format => :jpg, :watermark_path => "#{Rails.root}/public/images/watermark.png", :position => "NorthEast" }, 
       :small => "100x50>", 
       :medium => "200>x200", 
       :thumb => "100x100>", 
       :big => { :geometry => "640x480>", :format => :jpg, :watermark_path => "#{Rails.root}/public/images/watermark.png" } 
       }, 
     :default_url => "/images/noimage.png" 

Gracias de antemano.

+1

es el segmento "Smal" de la nueva uri un error tipográfico? – Christian

+0

¿Ha mejorado también el clip o Rails? –

+0

¿Se puede publicar la sección del modelo relevante que trata las opciones de Paperclip para el archivo adjunto? –

Respuesta

1

Suponiendo que la diferencia entre "pequeña" y "pequeña" entre la ruta original y la actual es un error tipográfico, el otro cambio obvio es la adición de los dos segmentos numéricos después de "/ photos /".

".../photos/000/000/094/smal/AudiLogo.jpg?1335392139" 

Sospecho que esto proviene de una id_partition que se utiliza para la ruta. ¿Está estableciendo una interpolación de ruta predeterminada diferente en algún otro lugar?

Al mirar el código de Paperclip veo el id_partition method que sería responsable de esto, pero todavía no he encontrado ninguna documentación que apunte en la dirección de un cambio en el comportamiento predeterminado. No pude seguir el código en la gema para determinar si es un error o un cambio no documentado.

+0

gracias hombre, es como un cambio de documento para mí. – jgiunta

3

acabo de tener una actualización similar y colocar alrededor de mi problema de esta manera:

has_attached_file :image, 
    :url => "/images/photos/:id/:basename_:style.:extension", 
    :path => ":rails_root/public/images/photos/:id/:basename_:style.:extension", 
+0

Como @heavysixersays, establecer la opción: path hará que Paperclip se comporte como solía hacerlo. Voy a tratar de verificar el motivo del error aunque – Christian

+0

gracias! Esta es una opción para forzar el camino y yo trabajaría, pero puede existir un método para realizar automáticamente la migración. – jgiunta

+0

@jgiunta No creo que haya una forma de migrar automáticamente. Puede leer [esta otra pregunta] (http://stackoverflow.com/questions/10251309/paperclip-s3-migrating-existing-files-from-one-path-format-to-another/10337918#10337918) con respecto a eso – Christian

14

que tenía el mismo problema. Puede solucionar este problema mediante la creación de un archivo de configuración como /inicializadores/paperclip.rb y poner

Paperclip::Attachment.default_options.merge!(
    :path => ":rails_root/public/system/:attachment/:id/:style/:basename.:extension", 
    :url => "/system/:attachment/:id/:style/:basename.:extension" 
)
+1

¿Hay alguna tarea de script to rake para mover archivos de una ubicación anterior a una nueva? –

Cuestiones relacionadas