Image processing 如何在rails 6中获取活动存储的tempfile路径
我正在将rails 5.2升级到rails 6。下面是我的旧代码,其中Image processing 如何在rails 6中获取活动存储的tempfile路径,image-processing,rails-activestorage,ruby-on-rails-6,Image Processing,Rails Activestorage,Ruby On Rails 6,我正在将rails 5.2升级到rails 6。下面是我的旧代码,其中object\u path我得到/tmp/image\u processing20191218-32740-qqg8h3.jpg 现在,随着图像魔法从活动存储器中移除,这个ImageProcessing::MiniMagick.source(path).call.to_path不起作用。有人知道另一种选择吗?在blob存储到DB之前,我需要这个路径 经过研究,我发现Rails 6将文件上传到存储器的时间改为实际保存记录的时间。
object\u path
我得到/tmp/image\u processing20191218-32740-qqg8h3.jpg
现在,随着图像魔法从活动存储器中移除,这个ImageProcessing::MiniMagick.source(path).call.to_path
不起作用。有人知道另一种选择吗?在blob存储到DB之前,我需要这个路径
经过研究,我发现Rails 6将文件上传到存储器的时间改为实际保存记录的时间。这意味着在保存或验证之前不能以常规方式访问文件。如果您需要访问新上载的文件,可以获得如下文件引用:
record.attachment_changes['')。可附加
这将是待附加文件的临时文件
def load_image_path(key)
if %w[development test].include? Rails.env
path = ActiveStorage::Blob.service.send(:path_for, key)
object_path = ImageProcessing::MiniMagick.source(path).call.to_path
else
object = S3.new.bucket.object key
object_path = object.presigned_url(:get)
end
object_path
end
record.attachment_changes['<attributename>'].attachable