2010-12-12 14 views
1

アプリはすくい宝石未定義のメソッドが `nilには「マップ:NilClass

感謝をインストールするに次のエラーを取得して、レール2.2.2 を使用しています!

D:\web>rake gems:install --trace 
(in D:/web) 
rake aborted! 
undefined method `map' for nil:NilClass 
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems.rb:223:in `activate' 
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:35:in `require' 
D:/web/vendor/rails/activesupport/lib/active_support.rb:56 
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' 
D:/web/vendor/rails/railties/lib/tasks/misc.rake:18 
D:/web/vendor/rails/railties/lib/tasks/rails.rb:4:in `load' 
D:/web/vendor/rails/railties/lib/tasks/rails.rb:4 
D:/web/vendor/rails/railties/lib/tasks/rails.rb:4:in `each' 
D:/web/vendor/rails/railties/lib/tasks/rails.rb:4 
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' 
D:/web/Rakefile:10 
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2383:in `load' 
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2383:in `raw_load_rakefile' 
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2017:in `load_rakefile' 
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' 
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2016:in `load_rakefile' 
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2000:in `run' 
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' 
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run' 
C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31 
C:/Ruby/bin/rake:19:in `load' 
C:/Ruby/bin/rake:19 

D:\web> 
+0

質問を再フォーマットして、スタックトレース全体をコードとしてフォーマットすることができます(選択して「101010」ボタンを押してください)。ありがとう – iain

答えて

3

rake gemを使用しないでください:古いレールバージョンでインストールしてください。 現在のアプリケーションのバージョンではサポートされていない宝石のバージョンがインストールされている可能性があります(バージョンが厳密に設定されていない場合)

しかし、今問題はプラグインの難易度です。 ベンダのディレクトリ名を変更してrake gemsを試してみてください:install(または、gem install somegem -v =で必要とされる最小限のバージョンで各Gemを個別にインストールしてください)

+0

ありがとうアレックス!忘れてしまった...前にこれに直面した。あなたが正しいです。 – Jay

0

それはrake gem install --traceしかしrake gems:install --traceではありません。

gem installは、宝石を手動でインストールするコマンドです。 gems:installは、あなたの設定に記載されているgemをインストールするためにRailsが提供するレーキタスクです。

+0

同じ結果:=] – Jay

1

私はこの問題を以前に見ていました。どの宝石が物事を台無しにしていますか? "私は、レールを2.3.8に固定した.specificationファイルを持っている宝石でこれを見ただけです(2.3.9にアップグレードしました)。

私はrubygems 1.3.7を使っています

def add_load_paths 
     self.class.add_frozen_gem_path 
     return if @loaded || @load_paths_added 
     if framework_gem? 
     @load_paths_added = @loaded = @frozen = true 
     return 
     end 
     gem self 
     @spec = Gem.loaded_specs[name] 
     @frozen = @spec.loaded_from.include?(self.class.unpacked_path) if @spec 
     @load_paths_added = true 
    rescue Gem::LoadError 
    end 

宝石を置き換えるために::とLoadError:私は私の地元のrailties .../gem_dependency.rbファイルに行くと、この方法を変更することにより、それを考え出し

)新しいバージョンに把握しやすいです例外あり ....

rescue Exception 
    puts "problem with gem #{name}" 
    end 

私はrake gemを実行しました。(物事が正常にロードされていることを確認するための簡単なテストです)、特定のバージョンにロックされた2つの宝石が表示され、制限ファイルを変更するために.specificationファイルを変更することができました。 。

関連する問題