Excepción usando MongoMapper con Ruby: “No hay archivo a mongo_mapper carga”
-
27-09-2019 - |
Pregunta
He descargado la gema mongo_mapper y se ha instalado correctamente. Ahora, lo estoy usando en mi aplicación y siempre ha producido una excepción "No hay archivo a mongo_mapper carga". ¿Qué se supone que significa eso?
require 'mongo_mapper'
include mongo
ACTUALIZACIÓN: Después de usar requiere rubygems '' primero. Mi problema original se ha ido ahora hay otro problema raro:
Me sale el siguiente:
**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.
Ya instalado bson_ext pero sigue echando esta excepción!
ACTUALIZACIÓN 2: advertencia BSON se ha ido, pero no soy capaz de enumerar los elementos de la colección Clientes.
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
Solución
Es necesario incluir rubygems antes de incluir una joya.
require 'rubygems'
require 'mongo_mapper'
También estoy bastante seguro de que su próxima include mongo
línea es incorrecta, es probable que desee include Mongo
. En realidad, es probable que desee nada en absoluto, ya que su plan es el uso MongoMapper
, no el conductor directamente.
Actualización:
En cuanto a lo bson_ext
, no es una excepción, sólo una advertencia. Obviamente, para su uso en producción que se quiere resolver esto y usted puede hacerlo asegurándose de que tiene las últimas gemas instaladas: sudo gem install mongo bson_ext mongo_mapper
que debe decir (como del 4 de octubre, 2010) que se instala mongo 1.1, bson_ext 1.1 y mongo_mapper 0,8 0.4.
Actualización 2:
¿Necesita más información. ¿El cliente tiene previsto aparecer aparece en la consola mongo? ¿Cómo se inserta? ¿Está seguro de los nombres de las colecciones razón?
Por lo tanto, si se ha utilizado alguna cosa .NET para hacer que el conjunto de datos y no se puede cambiar ahora, se puede especificar el nombre de la colección con la mano para el documento MongoMapper. De esta manera:
class Customer
include MongoMapper::Document
set_collection_name 'Customers'
# other stuff
end