2016-01-13 2 views
0

Пытается получить многократные загрузки файлов Carrierwave. Я следую документации на главной странице. При попытке загрузить файл или несколько, я получаю no implicit conversion of nil to stringCarrierwave Multiple File Upload + Нет неявного преобразования nil в String

Эта ошибка исходит от этого метода в драгоценный камень Carrierwave найденный в uploaders/cache.rb

def workfile_path(for_file=original_filename) 
    File.join(CarrierWave.tmp_path, @cache_id, version_name.to_s, for_file) 
end 

Вопрос заключается в том, что original_file равна нулю. Я попытался проследить проблему, но не могу найти, где проблема действительно начинается. Единственное, что странно, что я последовавший исходный код этого репо

https://github.com/bobintornado/sample-gallery-app-with-carrierwave

Приложение образец работает, и вы можете сделать несколько загрузки. Разница, однако, что, когда cache! метод называется new_file является Array, где в образце приложение, которое работает это Http::UploadedFile

Вот метод кэш

def cache!(new_file = sanitized_file) 
    new_file = CarrierWave::SanitizedFile.new(new_file) 
    return if new_file.empty? 

    raise CarrierWave::FormNotMultipart if new_file.is_path? && ensure_multipart_form 

    self.cache_id = CarrierWave.generate_cache_id unless cache_id 

    @filename = new_file.filename 
    self.original_filename = new_file.filename 

    begin 
     # first, create a workfile on which we perform processings 
     if move_to_cache 
     @file = new_file.move_to(File.expand_path(workfile_path, root), permissions, directory_permissions) 
     else 
     @file = new_file.copy_to(File.expand_path(workfile_path, root), permissions, directory_permissions) 
     end 

     with_callbacks(:cache, @file) do 
     @file = cache_storage.cache!(@file) 
     end 
    ensure 
     FileUtils.rm_rf(workfile_path('')) 
    end 
    end 

Вот мои первые PARAMS

"coach"=>{"name"=>"ben", "title"=>"ceo", "description"=>"head dude", 
"photos"=>[ 
    #<ActionDispatch::Http::UploadedFile:0x007fc9a5235c78 @tempfile=#<Tempfile:/var/folders/sb/t6rry5j928l3sy96nkhy9f840000gn/T/RackMultipart20160113-67635-avg8ef.jpg>, @original_filename="benn-1.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"coach[photos][]\"; filename=\"benn-1.jpg\"\r\nContent-Type: image/jpeg\r\n">, 
    #<ActionDispatch::Http::UploadedFile:0x007fc9a5235c50 @tempfile=#<Tempfile:/var/folders/sb/t6rry5j928l3sy96nkhy9f840000gn/T/RackMultipart20160113-67635-r8bdxp.jpg>, @original_filename="benn-2.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"coach[photos][]\"; filename=\"benn-2.jpg\"\r\nContent-Type: image/jpeg\r\n"> 
]} 

ответ

0

Извините, это не очень полезно, но я сжег свою текущую рабочую ветку и начал с самого начала, и теперь все работает. Не уверен, что я сделал по-другому. Если вы столкнулись с той же проблемой, я рекомендую начать и после этого урока:

Multiple-Images-Uploading-With-CarrierWave-and-PostgreSQL-Array

Смежные вопросы