Исключение при использовании MongoMapper с Ruby: "Нет файла для загрузки mongo_mapper"

Я скачал самоцвет 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 ответ

Решение

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

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
Другие вопросы по тегам