【发布时间】:2018-10-24 16:30:27
【问题描述】:
我需要获取磁盘上使用ActiveStorage 的文件的路径。该文件存储在本地。
当我使用回形针时,我对返回完整路径的附件使用了path 方法。
例子:
user.avatar.path
查看 Active Storage Docs 时,看起来rails_blob_path 可以解决问题。在查看了它返回的内容之后,它没有提供文档的路径。因此,它返回此错误:
没有这样的文件或目录@rb_sysopen -
背景
我需要文档的路径,因为我正在使用 combine_pdf gem 来将多个 pdf 合并为一个 pdf。
对于回形针的实现,我遍历了所选 pdf 附件的 full_paths 和 load 将它们合并为组合的 pdf:
attachment_paths.each {|att_path| report << CombinePDF.load(att_path)}
【问题讨论】:
-
文档指出,对于
blob_path,“访问时,会返回到实际服务端点的重定向。这种间接将公共 URL 与实际 URL 分离”,因此通过设计,这将挫败您的身份正在做。也许使用下载选项进行调查。 -
disk service implementation 有一个名为
path_for的方法,可以满足您的需求,但它是私有的。因此,使用#send获取路径或通过下载到临时文件过程似乎是选项。
标签: ruby-on-rails ruby rails-activestorage