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

我按照这里的步骤安装了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 

知道为什么会这样吗?

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

 Rails::Initializer.run do |config| config.gem 'composite_primary_keys' end