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"
-
使用以下命令安装
bson_ext
:gem install bson_ext
-
将gem添加到
Gemfile
:gem 'bson_ext'
-
在项目根级目录中运行
bundle
。