2013-04-15 12 views
11

Próbuję odtworzyć obrazy, które mam wrzucone za pomocą następujących w moim modelu ...odtworzyć wersje - carrierwave-fog-AWS

Post.all.each do |ym| 
     ym.avatar.cache_stored_file! 
     ym.avatar.retrieve_from_cache!(ym.avatar.cache_name) 
     ym.avatar.recreate_versions! 
     ym.save! 
    end 

Niestety, pojawia się następujący błąd ....

(undefined method `body' for nil:NilClass): 

Mój przesyłający nazywa się AvatarUploader i jest przeznaczony dla mojego modelu Post. Wszelkie porady, jak to naprawić?

+0

Myślę, że powinieneś umieścić ten kod w uploaderze, a nie w modelu Post. – noob

+0

Czy możesz dodać ślad wstecz? – ghayes

+0

Czy jest to serwer tylko do odczytu? – ErvalhouS

Odpowiedz

0

Uruchomiłem z podobnym problemem podczas korzystania z przetwarzania asynchronicznego na serwerze tylko do odczytu (Heroku). W moim przypadku nie było problemu przy określaniu rozmiaru pliku, który postanowiłem małpa-łatanie def size z klasy plików mgła:

module CarrierWave 
    module Storage 
    class Fog < Abstract 
     class File 
     def size 
      file.nil? ? 0 : file.content_length 
     end 
     end 
    end 
    end 
end 

mogę pomóc więcej, czy problem nadal występuje i kiedy piszesz więcej szczegółów ze swojego backtrace i konfiguracja klejnotów.