2012-07-27 49 views
0

我有這個(這些)模式(S)我將如何爲回形針附件創建作用域url?

Portfolio 
-- PortfolioItem item 
    -- Image image 
    has_attachment :attachment 

所有漂亮蛞蝓和我想的網址:附件,以反映該組織,如與實例

photos/holiday_in_venice/ponte_vecchio (all slugs of the respective hierarchy) 

會生成此網址

photos(??)/holiday_in_venice(??)/:slug/:style.:extension 

在回形針路徑/網址創建過程中,我將如何訪問這些假裝對象?

目前我唯一能夠做到

ponte_vecchio/small.png 

回答

0

你需要創建custom interpolations。之後,您可以定義一個:url和一個:path

將一個名爲paperclip.rb文件在您config/initializers/文件夾,做這樣的事情:

Paperclip.interpolates :portfolio_slug do |attachment, style| 
    attachment.instance.portfolio_item.portfolio.title.parameterize 
end 

Paperclip.interpolates :portfolio_slug do |attachment, style| 
    attachment.instance.portfolio_item.title.parameterize 
end 

之後,你可以使用這些插值這樣的:

has_attached_file :attachment, 
    :path=>":rails_root/public/photos/:portfolio_slug/:item_slug/:style.:extension", 
    :url=>"/photos/:portfolio_slug/:item_slug/:style.:extension" 
+0

感謝那些做到了!儘管如此,由於我無法真正在不同的模型中重新使用這些插值,我想我只會組合一個大的:portfolio_image_path並將它全部放在一個地方...... – Jan 2012-07-27 09:14:29