Проблема MongoId и bson_ext: такой файл не загружается - bson_ext - PullRequest
2 голосов
/ 15 июля 2010

Есть похожий вопрос о '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, но те же исключенияброшены.

Что не так?

Ответы [ 2 ]

2 голосов
/ 15 июля 2010

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

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

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

0 голосов
/ 16 июля 2010

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

  config.gem "mongo_mapper"

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

...