Исключение при использовании MongoMapper с Ruby: «Нет файла для загрузки mongo_mapper» - PullRequest
0 голосов
/ 04 октября 2010

Я скачал гем mongo_mapper и он успешно установлен.Теперь я использую его в своем приложении, и оно всегда выдает исключение «Нет файла для загрузки mongo_mapper».Что это должно означать?

require 'mongo_mapper'

include mongo

ОБНОВЛЕНИЕ: После использования сначала требуется 'rubygems'.Моя первоначальная проблема исчезла, теперь есть еще одна странная проблема:

Я получаю следующее:

**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.

Я уже установил bson_ext, но он продолжает выдавать это исключение!

ОБНОВЛЕНИЕ 2: предупреждение bson исчезло, но я не могу перечислить элементы в коллекции Customers.

require 'rubygems'
require 'mongo_mapper'

include Mongo

MongoMapper.database = 'Northwind'

class Customer
  include MongoMapper::Document

  key :FirstName, String
  key :LastName, String
  key :UserName, String
end


customers = Customer.all

puts customers.count # this always is 0. It should be 1 since there is one item in the Customers collection

puts customers

1 Ответ

0 голосов
/ 04 октября 2010

Вам нужно включить рубины перед тем, как добавлять драгоценный камень.

require 'rubygems'
require 'mongo_mapper'

Я также уверен, что ваша следующая строка include mongo неверна, вы, вероятно, хотите include Mongo.На самом деле вы, вероятно, вообще ничего не хотите, так как вы планируете использовать MongoMapper, а не драйвер напрямую.

Обновление:

Что касается вещи bson_extЭто не исключение, просто предупреждение.Очевидно, что для производственного использования вы захотите разобраться в этом, и вы можете сделать это, убедившись, что у вас установлены последние гемы: sudo gem install mongo bson_ext mongo_mapper, который должен сообщить вам (по состоянию на 4 октября 2010 г.), что он установил mongo 1.1, bson_ext 1.1 иmongo_mapper 0.8.4.

Обновление 2:

Нужна дополнительная информация.Клиент, которого вы ожидаете увидеть, появляется в оболочке Монго?Как ты это вставил?Вы уверены, что имена коллекций верны?

Итак, если вы использовали какую-то вещь .NET для создания набора данных и не можете изменить ее сейчас, вы можете указать имя коллекции вручную для документа MongoMapper.Вот так:

class Customer
  include MongoMapper::Document
  set_collection_name 'Customers'

  # other stuff
end
...