を使用しているディスク上のファイルへのパスを取得する必要がありますActiveStorage
。ファイルはローカルに保存されています。
ペーパークリップを使用していたときは、path
添付ファイルでフルパスを返すメソッドを使用していました。
例:
user.avatar.path
を見ながらアクティブストレージドキュメント、これでうまくいくように見えましたrails_blob_path
。しかし、返されたものを見ると、ドキュメントへのパスが提供されていません。そのため、次のエラーが返されます。
そのようなファイルまたはディレクトリはありません @ rb_sysopen -
背景
ドキュメントへのパスが必要なのは、結合_pdf複数の PDF を 1 つの PDF に結合するには、gem を使用します。
ペーパークリップの実装では、選択した PDF 添付ファイルの full_paths を反復処理して、load
結合された PDF に取り込みました。
attachment_paths.each {|att_path| report << CombinePDF.load(att_path)}
ベストアンサー1
使用:
ActiveStorage::Blob.service.path_for(user.avatar.key)
モデルでは次のようなことができます:
class User < ApplicationRecord
has_one_attached :avatar
def avatar_on_disk
ActiveStorage::Blob.service.path_for(avatar.key)
end
end