У меня есть приложение, размещенное на Heroku, где один пользователь может ответить на тест и отправить несколько фотографий (через Active Storage, и файлы отправляются в корзину S3), а другой пользователь может видеть полученные ответы и фотографии.
Я использовал метод для загрузки пользователем всех фотографий викторины в ZIP-файл, но я продолжаю получать это сообщение об ошибке в реальном приложении:
NoMethodError (неопределенный метод`path_for 'для #ActiveStorage :: Service :: S3Service: 0x0000000006b47368>):
Для создания файла .zip используется метод:
def quiz_photos_download
@quiz = Quiz.find(params[:quiz_id])
@project = Project.find(@quiz.project_id)
@photos = @quiz.room_photos
arquivo = "#{Rails.root}/tmp/quiz_photos.zip"
Zip::File.open(arquivo, Zip::File::CREATE) do |zipfile|
@photos.each do |photo|
zipfile.add(photo.filename, ActiveStorage::Blob.service.send(:path_for, photo.key))
end
end
send_file(arquivo, :type => 'application/zip', :filename => "Fotos "+@project.name+".zip")
end
Я могу отобразить всеИзображения, отправленные пользователем в представлениях проектов, и массовая загрузка прекрасно работают, когда код запускается локально.
Есть идеи на этот счет?