5

我一直在尝试使用 Paperclip 来构建照片库/商店。一个画廊有很多照片,一张照片属于一个画廊,用户可以有很多画廊。回形针的默认设置类似于 /:class/:style/:basename.:extension。但是,通过画廊设置,我更愿意使用 /:class/:user_name/:gallery_name/:styles/:basename.:extension 之类的东西。我还没有找到一种方法来访问对象中的变量以动态创建这些存储位置。

有没有办法做到这一点?

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

4

2 回答 2

8

查看Thoughtbot.com上的提示和更新部分。它讨论了如何将您自己的插值变量添加到路径/url。

于 2010-12-11T20:20:54.283 回答
4

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

# interpolate in paperclip
Paperclip.interpolates :user_name  do |attachment, style|
  attachment.instance.gallery.user.name
end
于 2015-05-25T16:38:07.923 回答