Sto caricando le mie immagini con Carrierwave e Fog su S3. Su l'upload ho anche creare una versione miniatura dell'immagine:Come verificare se esiste una versione di immagine su S3 con Carrierwave e Fog?
version :thumb do
process :resize_to_limit => [90, 80], if: :is_resizable?
end
Ora ho bisogno di un metodo per verificare se la versione miniatura esiste.
Il Documentation elenca il metodo exists?
. Questo in realtà funziona, se voglio verificare l'esistenza della versione originale:
asset.file.exists? # => true
Ma quando uso la versione "pollice" come questo:
asset.url(:thumb).file.exists?
che ottengo:
undefined method 'exists?' for #<String:0x007fcd9f9d9620>
:
è possibile utilizzare version_exists? metodo anche. vedi https://github.com/carrierwaveuploader/carrierwave/blob/master/lib/carrierwave/uploader/versions.rb#L152-L162 –
L'uso di 'version_exists?' non è la stessa cosa. 'version_exists? 'controlla solo che la versione sia stata definita sulla classe di uploader stessa; non controlla se il file è effettivamente disponibile. – steakchaser