Пакет не работает с mongo_ext
У меня проблема с очень простым Gemfile:
source :rubygems
gem 'mongo'
gem 'mongo_ext'
Я установил драгоценные камни с "установкой пакета", но он не загружает mongo_ext.
irb(main):001:0> require 'rubygems'
=> false
irb(main):002:0> require 'mongo'
**Notice: C extension not loaded. This is required for optimum MongoDB
Ruby driver performance. You can install the extension as follows:
gem install bson_ext
If you continue to receive this message after installing, make sure that the
bson_ext gem is in your load path and that the bson_ext and mongo gems are of
the same version.
=> true
Но если я использую систему IRB I, это нагрузка:
$ irb
irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'mongo'
=> true
irb(main):003:0>
Возможно, такое поведение связано с тем, что mongo_ext включает в себя расширения C.
1 ответ
Решение
Вам нужно добавить bson и bson_ext в ваш Gemfile:
source :rubygems
gem 'mongo'
gem 'mongo_ext'
gem 'bson'
gem 'bson_ext'
И вообще, это хорошая идея, чтобы указать версии драгоценных камней, которые вы используете. Таким образом, вы можете гарантировать, что ваш код работает, даже если гем вносит критические изменения (или добавляет новые ошибки, которые влияют на вас). Укажите самую новую версию, которая выйдет на момент запуска проекта, но обновляйте ее только с осторожностью. Пример:
source :rubygems
gem 'mongo', '1.5.1'
gem 'mongo_ext', '0.19.3'
gem 'bson', '1.5.1'
gem 'bson_ext', '1.5.1'