在保存到 ActiveStorage 之前重命名文件 - Rails 5.2

Renaming file before saving in ActiveStorage - Rails 5.2

我试图在保存到 ActiveStorage 之前重命名用户上传的文件,但我似乎没有找到任何文档来执行此操作。希望有人已经成功完成并有代码示例可以分享。

谢谢。

您可以试试下面的方法

@message.image.attach(io: File.open('/path/to/file'), filename: 'file.pdf')

在官方 ActiveStorage 文档中您可以找到更多示例

模型中的这个方法对我有用:

class Model < ApplicationRecord
has_one_attached :anything

  before_save do
    if self.anything.attached?
        ext = '.' + self.anything.blob.filename.extension
        self.anything.blob.update(filename: 'desired_file_name' + ext)
    end
  end
end