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?
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.