2010-12-11 61 views
5

我一直在玩使用回形針建立照片庫/商店。一個圖庫有很多照片,一張照片屬於一個圖庫,用戶可以有很多圖庫。回形針默認做類似/:class/:style/:basename.:extension的東西。但是,對於一個畫廊設置,我寧願有像/:class/:user_name/:gallery_name/:styles/:basename.:extension之類的東西。我還沒有找到一種方法來訪問對象中的變量,以便動態創建這些存儲位置。使用對象值的回形針路徑/ URL

有沒有辦法做到這一點?

我試過在路徑中使用#{variable},但這不起作用。這些照片對象是使用@ gallery.photos.build創建的,因此gallery_id應該已經具有可訪問的值。

回答

8

查看Thoughtbot.com上的tips and updates部分。它討論瞭如何將自己的插值變量添加到路徑/網址中。

4

@ zetetic的答案有點過時(博客文章是從2008年開始)當前(2015年)創建自定義插值的方法在paperclip wiki中描述。因此,對於user_name的問題,可能是這樣的:

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

感謝您發佈新的文檔鏈接! – jaredsmith 2015-07-10 20:32:30