为什么我在environment.rb中需要这个gem时遇到错误?

时间:2010-03-05 18:48:36

标签: ruby-on-rails rubygems

我按照here步骤安装了composite_primary_keys gem。当我尝试通过

在文件的最底部(在'结束'之后)的environment.rb中要求gem时
require 'composite_primary_keys'

启动服务器时我得到了这个

"69125"
=> Booting Mongrel
=> Rails 2.3.4 application starting on http://127.0.0.1:3002
/Library/Ruby/Site/1.8/rubygems.rb:270:in `activate': You have a nil object when you didn't expect it! (NoMethodError)
You might have expected an instance of Array.
The error occurred while evaluating nil.map
 from /Library/Ruby/Site/1.8/rubygems.rb:296:in `activate'
 from /Library/Ruby/Site/1.8/rubygems.rb:295:in `each'
 from /Library/Ruby/Site/1.8/rubygems.rb:295:in `activate'
 from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:35:in `require'
 from /path/to/www/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
 from /path/to/www/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in'
 from /path/to/www/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
 from /path/to/www/config/environment.rb:54
 from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
 from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
 from /path/to/www/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
 from /path/to/www/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in'
 from /path/to/www/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
 from /path/to/www/vendor/rails/railties/lib/commands/server.rb:84
 from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
 from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
 from ./script/server:3
 from -e:2:in `load'
 from -e:2

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:3)

尝试将它放在你的environment.rb中,如下所示:

Rails::Initializer.run do |config|

  config.gem 'composite_primary_keys'

end