ActiveStorage::Blob#download
предоставит вам BLOB-объект, который можно использовать для различных операций из памяти.
Tempfile.new
создаст файлы, которые являются объектами ввода-вывода и имеют указатель позиции. Когда вы записываете в файл, позиция продвигается.
Вам необходимо rewind
к позиции. Попробуйте следующее:
@file_temp = Tempfile.new
@file_temp.binmode
@file_temp.write(model.activestorage_attribute.download)
@file_temp.rewind
Тогда вы сможете прочитать данные:
@file_temp.read
#=> "...\x8F\xFF\x00\x16G\xFE\xAE\x0F\xE5\x0E\xED..."