2010-12-11 14 views
5

Fotoğraf galerisi/mağaza oluşturmak için Paperclip'i kullanarak etrafta dolaşıyorum. Bir Galeri'de birçok Fotoğraf vardır ve bir Fotoğraf bir Galeri'ye aittir ve Kullanıcıların çok sayıda Galerileri olabilir. Paperclip varsayılanları /:class/:style/:basename.:extension gibi bir şey yapar. Bununla birlikte, bir galeri kurulumu ile, /:class/:user_name/:gallery_name/:styles/:basename.:extension gibi bir şeye sahip olmayı tercih ederim. Bu depolama konumlarını dinamik olarak oluşturmak için henüz bir nesnedeki değişkenlere erişmenin bir yolunu bulamadım.Bir nesnenin değerlerini kullanarak ataşman yolu/URL'si

Bunu yapmanın bir yolu var mı?

Yolda # {variable} kullanmayı denedim, ancak bu çalışmaz. Bu fotoğraf nesneleri @ gallery.photos.build kullanılarak oluşturulmaktadır, bu yüzden gallery_id öğesinin erişilebilir bir değere sahip olması gerekir.

cevap

8

Thoughtbot.com adresindeki tips and updates bölümüne bakın. Kendi enterpolasyonlu değişkenlerinizi yol/url'ye nasıl ekleyeceğinizi anlatır.

4

@ zetetic'in cevabı biraz tarihli (blog yayını 2008'den itibaren) Özel (enterpolasyon) yeni enterpolasyon oluşturma yolu paperclip wiki'da açıklanmıştır. Bu nedenle, user_name sorusu için, muhtemelen böyle bir şey:

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

Yeni belge bağlantı gönderdiğiniz için teşekkür ederiz! – jaredsmith

İlgili konular