我正在尝试将我附加的文件保存到s3 - 但是不是将:id保存在路径中,我想使用:slug,它是从friendly_id gem写入数据库的。但是当我把:slug放在路径中时,我得到一个名为:slug的文件夹,而不是实际的:slug变量。
我很好奇如何最好地将:slug插入到保存图像的位置。关于调用has_attached_file时哪些参数暴露给回形针很好奇。
答案 0 :(得分:2)
您必须使用回形针插值。使用paperclip 3.5.2
对我有用class User < ActiveRecord::Base
extend FriendlyId
friendly_id :name, use: [ :slugged, :finders ]
Paperclip.interpolates :slug do |attachment, style|
attachment.instance.slug
end
has_attached_file :picture,
styles: { large: "512x512!", medium: "256x256!", thumb: "128x128!" },
default_url: "/images/:class/:style/missing.png",
hash_secret: "xxxxxxxxxxxxxxxxxxxxxx",
url: "/system/:class/:attachment/:slug/:style/:hash.:extension",
path: ":rails_root/public/system/:class/:attachment/:slug/:style/:hash.:extension"
end
它还演示了使用散列文件名来隐藏文件名中的私人信息。除非您在网络服务器中设置一些路由以从网址获取文件名,否则网址和路径必须匹配。