我有一个 Rails 应用程序,用户可以将照片上传到该应用程序。照片上传到 Amazon S3 存储桶。我有一个“贡献者”,他有很多“列表”,其中一个“列表”有很多“图像”。我希望它将所有图像上传到这种类型的目录:
:contributor_id/:listing_id/IMAGES_HERE.jpg
我也希望这样,如果贡献者创建另一个列表,它不会为该贡献者创建一个全新的文件夹。我希望它使用贡献者 ID 将其上传到已创建的文件夹中。
关于如何实现这一目标的任何想法?这是我当前的 :path 的样子
has_attached_file :asset,
:styles => {:large => "640x480", :medium => "300x300", :thumb => "100x100" },
:storage => :s3,
:s3_credentials => "#{Rails.root}/config/s3.yml",
:path => "/:contributor_id/:id/:filename"
回答:
非常感谢您的回答。这是我如何使用回形针的插值功能使其工作的。
Paperclip.interpolates('contributor_id') do |attachment, style|
attachment.instance.listing.contributor_id
end
Paperclip.interpolates('listing_name') do |attachment, style|
attachment.instance.listing.title.parameterize
end
然后我的路..
:path => "/:contributor_id/:listing_name/:filename"