Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

271
Vistas
Paperclip: carga a diferentes URL de S3 desde diferentes modelos

Tenía un modelo del que usé un clip y lo almacené en S3.

En paperclip.rb

 bucket_name = (Rails.env != 'production') ? "mcds_staging_fulltext" : 'mcds_fulltext' Paperclip::Attachment.default_options.merge!({ storage: :s3, s3_credentials: { bucket: bucket_name }, url: "#{CUSTOMER}/static_cover_images/:style/:basename.:extension", path: "#{CUSTOMER}/static_cover_images/:style/:basename.:extension" })

modelo1.rb

 has_attached_file :cover_image, styles: { :original => ["100%"], :thumbnail => ["100*100", :png] } validates_attachment_content_type :cover_image, content_type: /\Aimage\/.*\Z/, message: 'Invalid Content Type. Please upload jpg/jpeg/png/gif' validates_attachment_size :cover_image, :in => 0.megabytes..5.megabytes, :message => 'must be smaller than 5 MB'

esto funciona correctamente y almacena mis imágenes en S3 en la ubicación correcta.

Ahora tengo otro modelo desde el que necesito cargar un archivo adjunto de clip en una ubicación S3 diferente.

En modelo2.rb

 has_attached_file :xslt Paperclip::Attachment.default_options.merge!({url: "#{CUSTOMER}/xslts/:style/:basename.:extension"}) validates_attachment_content_type :xslt, content_type: "application/xslt+xml", message: 'Invalid Content Type. Please upload jpg/jpeg/png/gif' validates_attachment_size :xslt, :in => 0.megabytes..5.megabytes, :message => 'must be smaller than 5 MB'

pero este archivo adjunto aún se almacena en mi modelo 1 S3 y no en la URL especificada en el modelo 2.

¿Qué estoy haciendo mal?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Eliminé por completo el archivo paper_clip.rb y agregué configuraciones paper_clip en los modelos respectivos.

modelo1:

 has_attached_file :file1, storage: :s3, s3_credentials: { bucket: bucket_name }, url: "#{CUSTOMER}/cover_images/:style/:basename.:extension", path: "#{CUSTOMER}/cover_images/:style/:basename.:extension"

modelo2:

 has_attached_file :file2, storage: :s3, s3_credentials: { bucket: bucket_name }, url: "#{CUSTOMER}/file2_folder/:style/:basename.:extension", path: "#{CUSTOMER}/file2_folder/:style/:basename.:extension"

esto almacena el archivo adjunto correctamente en diferentes carpetas S3.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda