2010-05-24 57 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在你的項目的根級目錄。