MongoMapper和bson_ext问题

我不能让MongoMapper使用我的Rails应用程序。 我收到此错误消息:

**注意:未加载C扩展名。 这是最佳MongoDB Ruby驱动程序性能所必需的。 您可以按如下方式安装扩展:gem install bson_ext

如果在安装后继续收到此消息,请确保bson_ext gem位于加载路径中,并且bson_ext和mongo gem的版本相同。

我安装了DevKit并安装了gem:gem install bson_ext –no-rdoc –no-ri(结果:bson_ext-1.0.1已安装)

我在Windows 7上运行.Rails版本是2.3.7。 我在安装时使用了RubyInstaller。 谁能指出我正确的方向?

问题是:bson_ext gem版本和mongo gem版本需要匹配,mongo_mapper还没有为mongo-1.0.1做好准备,所以你应该使用的mongo和bson_ext gems版本各为1.0,分别。

所以,请执行以下操作:

gem install mongo -v=1.0 --no-ri --no-rdoc && \ gem install bson_ext -v=1.0 --no-ri --no-rdoc 

那么对于你的config / environment.rb中的Rails 2.x做:

 config.gem 'mongo', :version => '1.0' config.gem 'bson_ext', :version => '1.0' 

或者对于Rails 3,在你的Gemfile中:

 gem 'mongo', '1.0' gem 'bson_ext', '1.0' 

这通常是由于安装的bson_ext版本不等于MongoMapper所需的版本号。 检查哪个版本的bson MongoMapper需要,然后确保您拥有该版本而没有安装其他版本。

我需要指定bson版本才能使其工作,如下所示:

 gem 'mongo', "1.1" gem 'bson', "1.1" gem 'bson_ext', "1.1" 

(使用导轨3)

我按照上面的说明操作,但仍然是“没有这样的文件加载’bson_ext’。我去了gem并尝试将”ext“文件夹中的文件夹向上移动一级(到gem的根部)并且看,它有效.FWIW ……

在您的environment.rb中包含以下内容

 config.gem 'bson_ext', :version => "1.0", :lib => "bson_ext/cbson" 
  1. 使用以下命令安装bson_ext

     gem install bson_ext 
  2. 将gem添加到Gemfile

     gem 'bson_ext' 
  3. 在项目根级目录中运行bundle