Si quieres suscribirte al feed RSS del blog, este es el canal por defecto: http://www.sirius06.es/feed/
What do you need, besides a miracle? --- Guns. Lots of guns.

Paperclip y sus interpolaciones

14/10/2009

Se da el caso en que a veces, cuando utilizamos Paperclip, necesitamos que el path de un mismo adjunto sea diferente según su origen. Esto viene bien para guardar su información relacionada (MIME type, tamaño y nombre) en el mismo campo, pero flexibilizando al máximo su ubicación. Para ello, esta popular gema de Rails pone a nuestra disposición una característica muy útil: las interpolaciones.

Con ellas podemos mandar un parámetro extra (mediante un campo oculto, por ejemplo) al modelo para decirle dónde guardar el archivo, qué nombre darle o cualquier otra cosa. Ahora mismo nos centraremos en el primer ejemplo.

PaperlipsPrimero, creamos un “initializer” con el siguiente contenido:

  1. Paperclip::Interpolations[:folder] = proc do |attachment,style|
  2.   attachment.instance.folder
  3. end

De esta manera estamos habilitando el uso de la palabra reservada “:folder” en la instrucción “has_attached_file“, así:

  1. has_attached_file :att, :path => ":folder/:id.:extension"

Comentarios:

  • Aquí no comenta ni Dios, ¿quieres ser tú el primero?

Di algo:

Smilies: :D ≈confused≈ ≈cool≈ ≈cry≈ ≈down≈ :O ≈wings≈ ≈!≈ ≈halo≈ ≈love≈ ≈kiss≈ ≈happy≈ ≈mad≈ ≈$≈ ≈puaj≈ ≈silence≈ ≈pirate≈ ≈hmm≈ :P ≈ups≈ ≈bff≈ :( :) >_< o_O ≈up≈ ≈bad≈ ;)
Notas:
  • *: Campo requerido.
  • HTML desactivado.