【发布时间】:2011-01-27 19:26:31
【问题描述】:
我在尝试启动我的 Rails 2.3.8 项目时遇到此错误:
nil:NilClass (NoMethodError) 的未定义方法 `map'
我以前卖过一堆 gem,这是一个草率的项目,在 environment.rb 中没有相应的 config.gem 行。
我怎样才能恢复这个项目以便它可以启动?我在供应商中拥有所有这些宝石。我想过只是删除它们,启动项目,然后等待失败重新添加最新版本的 gems。这可行吗?
堆栈跟踪没有帮助:
/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/site_ruby/1.8/rubygems.rb:223:in `activate': undefined method `map' for nil:NilClass (NoMethodError)
from /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/site_ruby/1.8/rubygems.rb:249:in `activate'
from /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/site_ruby/1.8/rubygems.rb:248:in `each'
from /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/site_ruby/1.8/rubygems.rb:248:in `activate'
from /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/site_ruby/1.8/rubygems.rb:249:in `activate'
from /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/site_ruby/1.8/rubygems.rb:248:in `each'
from /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/site_ruby/1.8/rubygems.rb:248:in `activate'
from /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/site_ruby/1.8/rubygems.rb:1082:in `gem'
from ./script/../config/../vendor/rails/railties/lib/rails/gem_dependency.rb:73:in `add_load_paths'
from ./script/../config/../vendor/rails/railties/lib/initializer.rb:301:in `add_gem_load_paths'
from ./script/../config/../vendor/rails/railties/lib/initializer.rb:301:in `each'
from ./script/../config/../vendor/rails/railties/lib/initializer.rb:301:in `add_gem_load_paths'
from ./script/../config/../vendor/rails/railties/lib/initializer.rb:132:in `process'
from ./script/../config/../vendor/rails/railties/lib/initializer.rb:113:in `send'
from ./script/../config/../vendor/rails/railties/lib/initializer.rb:113:in `run'
from /Library/Illumaware/code/evokat25/config/environment.rb:19
from /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /Library/Illumaware/code/evokat25/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
from /Library/Illumaware/code/evokat25/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in'
from /Library/Illumaware/code/evokat25/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
from /Library/Illumaware/code/evokat25/vendor/rails/railties/lib/commands/server.rb:84
from /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from script/server:3
【问题讨论】:
-
您没有针对此问题的完整堆栈跟踪吗?
-
我发现了问题。我在 config.gem 中有一个名为 ts-delayed-delta 的 gem。我有 gem vendored,它是合适的版本,但它必须有一些导致问题的隐藏依赖项。太糟糕了,它不会说它是什么。
标签: ruby-on-rails