首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rake中止-是nil:NilClass的目录/未定义方法‘`downcase’

rake中止-是nil:NilClass的目录/未定义方法‘`downcase’
EN

Stack Overflow用户
提问于 2013-04-29 19:34:42
回答 2查看 740关注 0票数 0

我有一个rake任务,通过dragonfly-gem将pdf从我的文件系统导入到GridFS中。任务失败了,没有明显的原因。我很感谢你的帮助。谢谢!

rake任务:

代码语言:javascript
复制
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

堆栈跟踪:

代码语言:javascript
复制
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--i)。我认为这个问题与dragonfly有关,因为当imagemagick在dragonfly配置中被激活时。

代码语言:javascript
复制
app.configure_with(:imagemagick)

堆栈跟踪是不同的:

代码语言:javascript
复制
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'
.....
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-06 17:46:32

损坏的正则表达式看起来像是check here

因为你的哪段this代码

也就是说,format, width, height, depth全部设置为nil,因为scan由于regex损坏而返回nil

我的建议是从你的角度修复regex,直到他们修复并修补它

希望这对你有所帮助

票数 0
EN

Stack Overflow用户

发布于 2014-01-23 12:45:32

在使用rake任务根据excel文档中的列导入图像时,我遇到了此错误。我花了几分钟才意识到,如果文件名字段为空,这将是导致的错误。

我希望这对某些人有帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16277653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档