1

我正在尝试将附加文件保存到 s3 - 但不是将 :id 保存在路径中,我想使用从friendly_id gem 写入数据库的 :slug 。但是当我将 :slug 放在路径中时,我得到一个名为 :slug 的文件夹,而不是实际的 :slug 变量。

我很好奇如何最好地将 :slug 插入保存图像的位置。对调用 has_attached_file 时哪些参数暴露给回形针感到好奇。

4

1 回答 1

2

您必须使用回形针插值。这适用于我的回形针 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 和路径必须匹配。

于 2014-01-25T09:36:45.533 回答