Подсчет PDF страниц в ROR с помощью Docsplit - PullRequest
0 голосов
/ 10 июля 2019

Мне нужно получить количество страниц в файлах PDF, хранящихся в Ruby on Rails 5.2.3 ActiveStorage с использованием Docsplit.

Я загружаю документы PDF, используя Ruby on Rails ActiveStorage. Я понимаю, что эти документы хранятся в виде блобов. Я надеялся, что смогу передать ссылку на файл PDF в Docsplit примерно так:

pages = Docsplit.extract_length(@car_record.crecord)

Но вышесказанное привело к ошибке:

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

1 Ответ

1 голос
/ 10 июля 2019

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...