Проблема MongoId и bson_ext: нет такого файла для загрузки bson_ext

Есть аналогичный вопрос о bson_ext, но для меня это не работает.

проблема MongoMapper и bson_ext

Я использую Rails 2.3.8 + MongoId 1.9.1. Я перешел на страницу "установка" как:

gem install mongoid
gem install mongo -v=1.0.4
gem install bson_ext -v=1.0.4

В моем config / environment.rb я добавил:

config.gem 'mongoid'
config.gem 'mongo', :version=>'1.0.4'
config.gem 'bson_ext', :verstion=>'1.0.4'

Когда я запускаю приложение с ruby script/server, оно показывает:

=> Booting WEBrick
=> Rails 2.3.8 application starting on http://0.0.0.0:3000
no such file to load -- bson_ext
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in'
...
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
script/server:3
Missing these required gems:
  bson_ext  = 1.0.4

You're running:
  ruby 1.8.7.299 at /usr/local/bin/ruby
  rubygems 1.3.7 at /root/.gem/ruby/1.8, /usr/local/lib/ruby/gems/1.8

Run `rake gems:install` to install the missing gems.

Но я установил bson_ext 1.0.4:

gem list

bson (1.0.4, 1.0.3, 1.0.1, 1.0)
bson_ext (1.0.4, 1.0.1, 1.0)
mongo (1.0.4, 1.0.1, 1.0)
mongoid (1.9.1)
mongo_ext (0.19.3)

И я пробовал использовать 1.0 и 1.0.1, но возникали те же исключения.

Что случилось?


person Freewind    schedule 15.07.2010    source источник


Ответы (2)


Попробуйте изменить строку config.gem на:

config.gem 'bson_ext', :version=>'1.0.4', :lib => false

Это предотвращает попытки rails запрашивать "bson_ext", который не работает. Гем bson на самом деле пытается автоматически запросить "bson_ext / cbson" и в конечном итоге возвращается к bson_ruby, если не может найти родную версию.

person Jim Garvin    schedule 15.07.2010

Мне пришлось удалить все драгоценные камни bson и mongo, а затем запустить rake gems:install только с:

  config.gem "mongo_mapper"

в моем environment.rb файле. Railscasts для MongoDB и MongoMapper помогли мне начать использовать MongoDB с моим Rails 2.3. .8 приложение. Все остальное вызовет ошибку bson_ext.

person rxgx    schedule 15.07.2010
comment
Значит, вы работаете без библиотеки bson_ext? - person Jim Garvin; 16.07.2010
comment
Да это верно. Я попробую новую установку только с config.gem 'mongoid' в моем следующем экземпляре, чтобы подтвердить это. - person rxgx; 19.07.2010