Исключение с использованием Mongomapper с Ruby: «Нет файла для загрузки Mongo_Mapper»
-
27-09-2019 - |
Вопрос
Я скачал GEM 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 Предупреждение теперь прошло, но я не могу перечислить элементы в коллекции клиентов.
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
Решение
Вам нужно включить 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:
Нужно больше информации. Заказчик вы ожидаете появиться в Mongo Shell? Как вы его вставили? Вы уверены, что имена коллекций верны?
Итак, если вы использовали некоторую .NET, чтобы сделать набор данных и не может изменить его сейчас, вы можете указать имя коллекции вручную для документа Mongomapper. Вот так:
class Customer
include MongoMapper::Document
set_collection_name 'Customers'
# other stuff
end