2013-04-29 2 views
0

잠자리 보석을 통해 내 파일 시스템에서 GridFS로 pdf를 가져 오기위한 레이크 작업이 있습니다. 작업이 분명한 이유없이 실패합니다. 모든 도움에 감사드립니다. 감사!rake aborted - nil을위한 디렉토리/정의되지 않은 메소드`downcase '입니다 : NilClass

레이크 작업 :

task :worksafety_files => :environment do 
# Importiert Archiv-Dateien via Dragonfly in GridFS 
Worksafety.all.each do |worksafety| 
    if worksafety.doc_1_tmp != nil and File.exist?("#{Rails.root}/config/mongify/archiv/safety/#{worksafety.doc_1_tmp}") 
    worksafety.doc_1 = File.new("#{Rails.root}/config/mongify/archiv/safety/#{worksafety.doc_1_tmp}") 
    worksafety.doc_1_tmp = nil 
    end 
    if worksafety.doc_2_tmp != nil and File.exist?("#{Rails.root}/config/mongify/archiv/safety/#{worksafety.doc_2_tmp}") 
    worksafety.doc_2 = File.new("#{Rails.root}/config/mongify/archiv/safety/#{worksafety.doc_2_tmp}") 
    worksafety.doc_2_tmp = nil 
    end 
    if worksafety.doc_3_tmp != nil and File.exist?("#{Rails.root}/config/mongify/archiv/safety/#{worksafety.doc_3_tmp}") 
    worksafety.doc_3 = File.new("#{Rails.root}/config/mongify/archiv/safety/#{worksafety.doc_3_tmp}") 
    worksafety.doc_3_tmp = nil 
    end 
    if File.exist?("#{Rails.root}/config/mongify/archiv/safety/#{worksafety.doc_4_tmp}") 
    worksafety.doc_4 = File.new("#{Rails.root}/config/mongify/archiv/safety/#{worksafety.doc_4_tmp}") 
    worksafety.doc_4_tmp = nil 
    end 
    if File.exist?("#{Rails.root}/config/mongify/archiv/safety/#{worksafety.doc_5_tmp}") 
    worksafety.doc_5 = File.new("#{Rails.root}/config/mongify/archiv/safety/#{worksafety.doc_5_tmp}") 
    worksafety.doc_5_tmp = nil 
    end  

    worksafety.save 
end 
end 

스택 트레이스 :

rake aborted! 
Is a directory - read 
/home/vagrant/.rvm/gems/ruby-2.0.0-p0/bundler/gems/dragonfly-08de999d19a0/lib/dragonfly/temp_object.rb:198:in `copy_to_tempfile' 
/home/vagrant/.rvm/gems/ruby-2.0.0-p0/bundler/gems/dragonfly-08de999d19a0/lib/dragonfly/temp_object.rb:100:in `tempfile' 
/home/vagrant/.rvm/gems/ruby-2.0.0-p0/bundler/gems/dragonfly-08de999d19a0/lib/dragonfly/temp_object.rb:107:in `file' 
.... 

나는 두 번 폴더 "안전"을 확인했습니다. pdf 파일 만 있습니다. (mime-tpye는 파일 -i *로 검사했습니다.) 나는 문제가 ImageMagick이가 잠자리 설정에 avtivated 때 때문에, 잠자리에 관련된 생각 ..

app.configure_with(:imagemagick) 

스택 트레이스가 다른 :

rake aborted! 
undefined method `downcase' for nil:NilClass 
/home/vagrant/.rvm/gems/ruby-2.0.0-p0/bundler/gems/dragonfly-  08de999d19a0/lib/dragonfly/image_magick/utils.rb:26:in `identify' 
/home/vagrant/.rvm/gems/ruby-2.0.0-p0/bundler/gems/dragonfly-08de999d19a0/lib/dragonfly/image_magick/analyser.rb:44:in `format' 
/home/vagrant/.rvm/gems/ruby-2.0.0-p0/bundler/gems/dragonfly-08de999d19a0/lib/dragonfly/function_manager.rb:39:in `call' 
/home/vagrant/.rvm/gems/ruby-2.0.0-p0/bundler/gems/dragonfly-08de999d19a0/lib/dragonfly/function_manager.rb:39:in `block (2 levels) in call_last' 
/home/vagrant/.rvm/gems/ruby-2.0.0-p0/bundler/gems/dragonfly-08de999d19a0/lib/dragonfly/function_manager.rb:38:in `catch' 
/home/vagrant/.rvm/gems/ruby-2.0.0-p0/bundler/gems/dragonfly-08de999d19a0/lib/dragonfly/function_manager.rb:38:in `block in call_last' 
/home/vagrant/.rvm/gems/ruby-2.0.0-p0/bundler/gems/dragonfly-08de999d19a0/lib/dragonfly/function_manager.rb:37:in `each' 
..... 

답변

0

검사와 같은 깨진 정규식 모양 here

때문에 그 중 this ur 코드의 일부

format, width, height, depth은 모두로 설정됩니다. 그들은 그것을 수정하고

희망을 사용하는 동안이 오류로 실행

+0

감사합니다. 이는 imagemagick의 "식별"버전에 달려 있습니다. 명령 출력은 각 버전마다 다릅니다. – patrickkeller

0

이 도움을 패치 할 때까지 있기 때문에 regex

가 귀하의 측면에서 regex를 해결 깨진의 nil를 반환하는 것은 내가 제안 무엇scan 때문에 레이크 작업을 사용하여 Excel 문서의 열을 기반으로 이미지를 가져옵니다. 파일 이름 필드가 비어 있으면 결과 오류가 발생한다는 것을 깨닫기까지 몇 분이 걸렸습니다.

나는 누군가를 돕기를 바랍니다. :)