2010-05-24 58 views
9

我无法让MongoMapper与我的Rails应用程序一起工作。我收到此错误消息:MongoMapper和bson_ext问题

**注意:C扩展未加载。这是优化MongoDB Ruby驱动程序性能所必需的。 如下您可以安装扩展: 创业板安装bson_ext

如果你继续安装后收到此消息,请确保 bson_ext宝石在你的负载路径,而且bson_ext和蒙戈宝石是相同的版。

我已经安装的devkit并安装创业板:创业板安装--no里bson_ext --no-的RDoc(结果:安装bson_ext-1.0.1)

我在Windows 7中运行的Rails版本是2.3.7。安装时我使用了RubyInstaller。任何人都可以将我指向正确的方向吗?

回答

11

问题是:bson_ext gem版本和mongo gem版本需要匹配,此外,mongo_mapper尚未准备好用于mongo-1.0.1,因此您应该使用的mongo和bson_ext gem版本是分别为1.0。

所以,做到以下几点:

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

然后为Rails 2.X在你的config/environment.rb中做:

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' 
+0

[jkndrkn](http://stackoverflow.com/users/205640/jkndrkn)的建议编辑是添加'gem'bson','1。0'' – 2011-02-11 01:26:52

+0

我使用v 1.9.2为mongo和bson和bson_ext ...工作正常。 – 2014-02-22 12:33:08

1

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

0

我按照上面的说明,但仍然是“没有这样的文件加载'bson_ext'。我去了宝石,并试图移动文件夹中的”外部“文件夹上一层(宝石的根),你看,它的工作。 FWIW ...

0

包括在你的environment.rb以下

config.gem 'bson_ext', :version => "1.0", :lib => "bson_ext/cbson" 
1

我需要指定BSON版本,以获得这个工作,像这样:

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

(使用Rails 3)

+0

非常好。这正是我需要的我的rails 3应用程序。 – jkndrkn 2011-02-11 00:53:49

0
  1. 使用安装bson_ext

    gem install bson_ext 
    
  2. 宝石添加到您的Gemfile

    gem 'bson_ext' 
    
  3. 运行bundle在你的项目的根级目录。