2

关于“bson_ext”有一个类似的问题,但这对我不起作用。

MongoMapper 和 bson_ext 问题

我正在使用 Rails 2.3.8 + MongoId 1.9.1。我按照“安装”页面如下:

gem install mongoid
gem install mongo -v=1.0.4
gem install bson_ext -v=1.0.4

在我的 config/environment.rb 中,我添加了:

config.gem 'mongoid'
config.gem 'mongo', :version=>'1.0.4'
config.gem 'bson_ext', :verstion=>'1.0.4'

当我使用 启动应用程序时ruby script/server,它显示:

=> Booting WEBrick
=> Rails 2.3.8 application starting on http://0.0.0.0:3000
no such file to load -- bson_ext
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in'
...
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
script/server:3
Missing these required gems:
  bson_ext  = 1.0.4

You're running:
  ruby 1.8.7.299 at /usr/local/bin/ruby
  rubygems 1.3.7 at /root/.gem/ruby/1.8, /usr/local/lib/ruby/gems/1.8

Run `rake gems:install` to install the missing gems.

但我已经安装了bson_ext 1.0.4

gem list

bson (1.0.4, 1.0.3, 1.0.1, 1.0)
bson_ext (1.0.4, 1.0.1, 1.0)
mongo (1.0.4, 1.0.1, 1.0)
mongoid (1.9.1)
mongo_ext (0.19.3)

而且,我曾尝试使用 1.0 和 1.0.1,但抛出了相同的异常。

怎么了?

4

2 回答 2

2

尝试将 config.gem 行更改为:

config.gem 'bson_ext', :version=>'1.0.4', :lib => false

这可以防止 rails 尝试要求“bson_ext”,这不起作用。bson gem 实际上会尝试自动要求“bson_ext/cbson”,如果找不到本机版本,最终会退回到 bson_ruby。

于 2010-07-15T15:38:39.720 回答
0

我必须卸载所有 bson 和 mongo gems,然后rake gems:install只运行:

  config.gem "mongo_mapper"

在我的environment.rb档案中。MongoDB 和 MongoMapper的 Railscasts帮助我开始在我的 Rails 2.3.8 应用程序中使用 MongoDB。其他任何事情都会产生 bson_ext 错误。

于 2010-07-15T21:40:26.977 回答