0

我需要使用 Docsplit 获取存储在 Ruby on Rails 5.2.3 ActiveStorage 中的 PDF 文件的页数。

我正在使用 Ruby on Rails ActiveStorage 上传 PDF 文档。我了解这些文档存储为 blob。我希望我可以将 PDF 文件的引用传递给 Docsplit,例如:

pages = Docsplit.extract_length(@car_record.crecord)

但是上面导致了一个错误:

no implicit conversion of ActiveStorage::Attached::One into String
4

1 回答 1

1

Docsplit.extract_length需要一个字符串(可能是本地文件的路径),并@car_record.crecord返回一个 ActiveRecord 对象。

你应该能够做类似的事情,

file = @car_record.crecord.download_blob_to_tempfile
Docsplit.extract_length(file.path)

编辑:ActiveStorage::Downloading在 6.1 中被删除。尝试以下操作:

tempfile = Tempfile.new 
tempfile.binmode

begin
  @car_record.crecord.download { |chunk| tempfile.write(chunk) } 
  tempfile.flush
  tempfile.rewid
ensure 
  tempfile.close!
end

Docsplit.extract_length(tempfile.path)
于 2019-07-09T23:08:25.243 回答