2010-12-11 11 views
5

Bawiłem się przy użyciu Paperclip, aby zbudować galerię zdjęć/sklep. Galeria ma wiele zdjęć, a zdjęcie należy do galerii, a użytkownicy mogą mieć wiele galerii. Domyślny spinacz robi coś w stylu /:class/:style/:basename.:extension. Jednak przy konfiguracji galerii wolałbym mieć coś w stylu /:class/:user_name/:gallery_name/:styles/:basename.:extension. Nie znalazłem jeszcze sposobu na uzyskanie dostępu do zmiennych w obiekcie w celu dynamicznego tworzenia tych miejsc przechowywania.Ścieżka spinacza/adres URL używający wartości obiektu

Czy jest jakiś sposób na zrobienie tego?

Próbowałem użyć # # w ścieżce, ale to nie działa. Te obiekty fotograficzne są tworzone przy użyciu @ gallery.photos.build, więc gallery_id powinien już mieć dostępną wartość.

Odpowiedz

8

Proszę spojrzeć na sekcję tips and updates na Thoughtbot.com. Omówiono sposób dodawania własnych zmiennych interpolowanych do ścieżki/adresu URL.

4

@ Odpowiedź zetetic jest nieco przestarzały (wpis na blogu pochodzi z 2008 roku) Obecny (2015) sposób tworzenia niestandardowych interpolacji jest opisany w paperclip wiki. Tak więc dla user_name w pytaniu, prawdopodobnie coś takiego:

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

Dziękujemy za zamieszczenie nowego linku dokumentacyjnego! – jaredsmith

Powiązane problemy