2010-12-11 65 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