2012-07-07 13 views
6

So che mi manca qualcosa di veramente facile qui ...controllo Carrierwave se il file in modalità remota tramite nebbia

CarrierWave::Storage::Fog::File ha un metodo exists?

Come si usa? Sto solo cercando di verificare se esiste un file precedentemente caricato nella memoria remota.

Né il mio oggetto immagine, né il mio oggetto uploader hanno accesso a questo metodo. Sicuramente non devo creare un nuovo oggetto CarrierWave::Storage::Fog::File per verificare se il file esiste?

Se sì, quali parametri devo inserire? Prende il seguente: uploader, base, percorso (Ho usato l'uploader, la directory del negozio e l'URL dell'immagine, ma non ha funzionato)

risposta

18

Supponiamo di avere Utente modello con un'immagine campo su cui si utilizza Carrierwave. ora Si potrebbe scrivere:

user = User.first 
user.image.file.exists? 

Questo eseguirà un controllo remoto che restituisce vero o falso

+0

sapevo che mancava qualcosa di semplice; grazie mille! – Demelziraptor

+0

Sebbene funzioni, è lento da eseguire poiché esegue un controllo remoto, soprattutto se lo si fa su più immagini su una pagina. –

+0

Come posso verificare il file esistente o caricato prima di salvarlo nel database? (Utilizzo di S3 per Archiviazione, CarrierWave e Dropzone.js per il caricamento) –

Problemi correlati