У меня есть модель с одним вложением, которая использует ActiveStorage:
class ProofreadDocument < ApplicationRecord
has_one_attached :file
end
Я работаю над задачей rake, чтобы прикрепить файлы к proofread_document.Файлы сжимаются в zip-архив.
Я понимаю, что я могу прикрепить файлы следующим образом из чтения документов ActiveStorage:
@proofread_document.file.attach(io: File.open('/path/to/file'), filename: 'file.pdf')
У меня есть следующее в моей задаче граблей:
Zip::File.open(args.path_to_directory) do |zipfile|
zipfile.each do |file|
proofread_document = ProofreadDocument.new()
proofread_document.file.attach(io: file.get_input_stream.read, filename: file.name)
proofread_document.save
end
end
Это приводит к следующей ошибке:
NoMethodError: undefined method `read' for #<String:0x007f8d894d95e0>
Мне нужно прочитать содержимое каждого файла по одному, чтобы прикрепить его к экземпляру proofread_document.Как я могу это сделать?