使用对象值的Paperclip路径/ url

时间:2010-12-11 20:03:26

标签: ruby-on-rails path paperclip nested-class photo-gallery

我一直在玩Paperclip来建立照片库/商店。图库有很多照片,照片属于图库,用户可以有很多图库。回形针默认值类似于/:class/:style/:basename.:extension。但是,通过图库设置,我更喜欢像/:class/:user_name/:gallery_name/:styles/:basename.:extension。我还没有找到一种方法来访问对象中的变量,以便动态创建这些存储位置。

有没有办法做到这一点?

我尝试在路径中使用#{variable},但这不起作用。这些照片对象是使用@ gallery.photos.build创建的,因此gallery_id应该已经具有可访问的值。

2 个答案:

答案 0 :(得分:8)

查看Thoughtbot.com上的tips and updates部分。它讨论了如何将自己的插值变量添加到路径/ URL中。

答案 1 :(得分:4)

@ zetetic的回答有点过时(博客文章是2008年)当前(2015)创建自定义插值的方法在paperclip wiki中有描述。所以对于问题中的user_name,可能是这样的:

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