回形针自定义:路径和:url

尝试使用paperclip自定义has_attached_file的:path和:url选项时遇到一些问题:

我有一个名为“Asset”的多态类,它具有:

class Asset  true has_attached_file :picture, :styles => { ...}, :url => "/attachments/user_:user/dressing_:dressing/garment_:garment/category_:category/:basename_:style.:extension", :path => ":rails_root/public/attachments/user_:user/dressing_:dressing/garment_:garment/category_:category/:basename_:style.:extension" end 

插值效果很好但我想根据file_owner_type自定义路径和url

例如,如果我想要用户的图片路径,我想要

 :path => ":rails_root/public/attachments/user_:user/:basename_:style.:extension 

谢谢你的帮助

编辑 :我想我没有正确解释自己。 我已经创建并且运行良好的插值。

我有一个多态的资产模型,所有者可以是用户(用于化身),服装或敷料。 我希望根据文件所有者的不同路径 。 在这个时候,当我想要添加一件服装资产时,它的效果很好

"/attachments/user_x/dressing_y/garment_z/category_u/something_style.jpg"

但是,如果我只是想要一个用户图片,这条路径将把头像放入

"/attachments/user_x/dressing_/garment_/category_/something_style.jpg"

而我想把它放进去

"/attachments/user_x/something_style.jpg"

谢谢

url中有这样的内容:

 :url => "/attachments/:path/:basename_:style.:extension", 

然后在插值中:

 Paperclip.interpolates :path do |attachment, style| if attachment.instance.file_owner_type == User.class.name # first set the _user variable (something like self.owner.id.to_s) return "user_" + _user else # first set the _user, _dressing, _garmet, _category variables from your models return "user_#{_user}/dressing_#{_dressing}/garment_#{_garmet}/category_#{_category}/" end end 

请注意,您需要从模型中设置_user,_dressing,_garmet,_category变量。

希望这可以帮助。

在您定义的插值中尝试: attachment.instance.file_owner.class.downcase