He estado luchando para averiguar por qué recibo este error en Heroku.
Shrine::Error (storage :cache isn't registered on PdfUploader)inicializador.rb
require "shrine" require "shrine/storage/s3" s3_options = { access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'), secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'), region: ENV.fetch('AWS_REGION'), bucket: ENV.fetch('AWS_BUCKET') } Shrine.storages = { cache: Shrine::Storage::S3.new(prefix: "cache", upload_options: {acl: "public-read"}, **s3_options), store: Shrine::Storage::S3.new(prefix: "store", upload_options: {acl: "public-read"}, **s3_options) } Shrine.plugin :activerecord Shrine.plugin :direct_upload, presign: truepdf_uploader.rb
class PdfUploader < Shrine plugin :determine_mime_type plugin :validation_helpers Attacher.validate do validate_mime_type_inclusion %w(image/jpeg image/png image/gif application/pdf), message: 'must be JPEG, PNG, GIF, or PDF' end endPuedo cargar en la carpeta de caché en mi depósito de AWS directamente desde el DOM con jquery-file-upload y la ruta que he establecido para obtener la URL prefirmada:
mount PdfUploader::UploadEndpoint => '/pdfs/upload'Sin embargo, cuando intento enviar mi formulario y crear mi objeto en la base de datos, aparece el siguiente error:
Shrine::Error (storage :cache isn't registered on PdfUploader)Cualquier opinión o sugerencia sería muy apreciada. ¡Gracias!
PD: si sirve de algo, todo funciona en mi local ... este problema solo está en Heroku