2012-07-07 4 views
6

Sé que me falta algo realmente fácil aquí ...cheque Carrierwave si existe el archivo remoto a través de la niebla

CarrierWave::Storage::Fog::File tiene un método exists?

¿Cómo puedo utilizarlo? Solo estoy tratando de verificar si un archivo previamente cargado existe en el almacenamiento remoto.

Ni mi objeto de imagen ni mi objeto de carga tienen acceso a este método. Seguramente no tengo que crear un nuevo objeto CarrierWave::Storage::Fog::File para probar si el archivo existe.

Si es así, ¿qué parámetros debo poner? Toma lo siguiente: cargador, base, ruta (utilicé el cargador, el directorio de la tienda y la URL de la imagen, pero eso no funcionó)

Respuesta

18

Supongamos que tiene un usuario modelo con una imagen de campo en la que usa Carrierwave. Ahora podría escribir:

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

Esto sería ejecutar una comprobación remota que devuelve verdadero o falso

+0

sabía que estaba perdiendo algo sencillo; ¡muchas gracias! – Demelziraptor

+0

Aunque esto funciona, su ejecución es lenta ya que está realizando una comprobación remota, especialmente si lo está haciendo en varias imágenes en una página. –

+0

¿Cómo puedo verificar que el archivo exista o que esté cargado antes de guardarlo en la base de datos? (Usando S3 para almacenamiento, CarrierWave y Dropzone.js para cargar) –

Cuestiones relacionadas