2010-12-11 13 views
5

He estado jugando con el uso de Paperclip para crear una galería de fotos/tienda. Una galería tiene muchas fotos y una foto pertenece a una galería, y los usuarios pueden tener muchas galerías. Los valores predeterminados del clip hacen algo como /:class/:style/:basename.:extension. Sin embargo, con una configuración de galería, preferiría tener algo como /:class/:user_name/:gallery_name/:styles/:basename.:extension. Todavía no he encontrado una forma de acceder a las variables en un objeto para crear dinámicamente estas ubicaciones de almacenamiento.Ruta de acceso del bloc de notas/url utilizando los valores de un objeto

¿Hay alguna forma de hacerlo?

He intentado usar # {variable} en la ruta, pero eso no funciona. Estos objetos fotográficos se están creando con @ gallery.photos.build, por lo que gallery_id ya debería tener un valor accesible.

Respuesta

8

Eche un vistazo a la sección tips and updates en Thoughtbot.com. Discute cómo agregar sus propias variables interpoladas en la ruta/url.

4

La respuesta de @ zetetic es un poco anticuada (la publicación del blog es de 2008) La forma actual (2015) de crear interpolaciones personalizadas se describe en el paperclip wiki. Entonces, para el user_name en la pregunta, probablemente algo como esto:

# interpolate in paperclip 
Paperclip.interpolates :user_name do |attachment, style| 
    attachment.instance.gallery.user.name 
end 
+0

¡Gracias por publicar el nuevo enlace de documentación! – jaredsmith

Cuestiones relacionadas