2013-04-29 18 views
0

我有一個rake任務,通過蜻蜓寶石從我的文件系統導入pdf到GridFS。任務失敗,沒有明顯的原因。 我感謝任何幫助。謝謝!rake aborted - 是一個目錄/未定義的方法`downcase'爲零:NilClass

rake任務:

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文件(用文件-i *檢查mime-tpye)。我認爲這個問題是要蜻蜓,因爲當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一段烏爾代碼

即ie format, width, height, depth全部設置爲nil因爲scan是因爲破regex

從你身邊修復regex返回nil是我的建議,直到他們解決它,並給它打上補丁

希望這有助於

+0

謝謝,這有助於。這取決於imagemagick的「識別」版本。每個版本的命令輸出都不相同。 – patrickkeller 2013-05-06 22:57:59

0

我就遇到了這個錯誤,而使用rake任務來導入基於excel文檔中的列的圖像。花了我幾分鐘的時間來認識到,如果文件名字段爲空,這將是由此產生的錯誤。

我希望可以幫助別人:)

相關問題