我正在尝试将附加文件保存到 s3 - 但不是将 :id 保存在路径中,我想使用从friendly_id gem 写入数据库的 :slug 。但是当我将 :slug 放在路径中时,我得到一个名为 :slug 的文件夹,而不是实际的 :slug 变量。
我很好奇如何最好地将 :slug 插入保存图像的位置。对调用 has_attached_file 时哪些参数暴露给回形针感到好奇。
我正在尝试将附加文件保存到 s3 - 但不是将 :id 保存在路径中,我想使用从friendly_id gem 写入数据库的 :slug 。但是当我将 :slug 放在路径中时,我得到一个名为 :slug 的文件夹,而不是实际的 :slug 变量。
我很好奇如何最好地将 :slug 插入保存图像的位置。对调用 has_attached_file 时哪些参数暴露给回形针感到好奇。
您必须使用回形针插值。这适用于我的回形针 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
它还演示了使用散列文件名来隐藏文件名中的私人信息。除非您在 Web 服务器中设置了一些路由以从 url 获取文件名,否则 URL 和路径必须匹配。