2012-07-07 9 views
6

Wiem, że brakuje czegoś naprawdę łatwy tutaj ...Carrierwave sprawdzić, czy zdalny plik istnieje poprzez mgłę

CarrierWave::Storage::Fog::File ma metodę exists?

Jak tego użyć? Próbuję tylko sprawdzić, czy wcześniej przesłany plik istnieje w zdalnym magazynie.

Ani mój obiekt obrazu, ani mój obiekt uploadera nie mają dostępu do tej metody. Z pewnością nie muszę tworzyć nowego obiektu CarrierWave::Storage::Fog::File, aby sprawdzić, czy plik istnieje?

Jeśli tak, jakie parametry należy włożyć? Ma on następującą postać: uploader, baza, ścieżka (użyłem programu do przesyłania, katalogu sklepu i adresu URL obrazu, ale to nie zadziałało)

Odpowiedz

18

Załóżmy, że masz model użytkownika z obrazem pola, na którym używasz Carrierwave. Można teraz napisać:

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

To byłoby wykonać zdalną kontrolę, która zwraca true lub false

+0

wiedział, że brakuje czegoś proste; Dziękuję bardzo! – Demelziraptor

+0

Chociaż to działa, jest powolne wykonywanie, ponieważ wykonuje zdalne sprawdzanie, zwłaszcza jeśli robisz to na wielu obrazach na stronie. –

+0

Jak mogę sprawdzić, czy plik istnieje, czy został przesłany przed zapisaniem go w bazie danych? (Używanie S3 do przechowywania, CarrierWave i Dropzone.js do przesyłania) –

Powiązane problemy