2010-05-30 5 views
1

SalutationsMongoId avec rails - base de données devrait être un Mongo :: DB, non NilClass »

Je suis en train de se MongoId de travailler avec mon application Rails et je reçois une erreur: "Mongoid::Errors::InvalidDatabase in 'Shipment bol should be unique' Database should be a Mongo::DB, not NilClass" J'ai créé le fichier mongoid.yml dans mon répertoire config et ont MongoDB en cours d'exécution en tant que démon le fichier de configuration est comme ceci:...

defaults: &defaults 
host: localhost 

development: 
    <<: *defaults 
    database: ship-it-development 

test: 
    <<: *defaults 
    database: ship-it-test 

production: 
    <<: *defaults 
    host: <%= ENV['MONGOID_HOST'] %> 
    port: <%= ENV['MONGOID_PORT'] %> 
    database: <%= ENV['MONGOID_DATABASE'] %> 

Tous mes specs échouent avec l'erreur ci-dessus, je suis en utilisant des rails 2.3.8

Quelqu'un a des idées?

+0

Courez-vous cela dans la production ou le développement ? –

+0

développement sur ma machine locale –

Répondre

3

Comme expliquer sur la question: How can i generate mongoid.yml config in Rail 2.3.5?

Le mongoid.yml ne fonctionne pas avec Rails 2.3.x. La charge est automatique uniquement avec Rails 3.

Vous devez ajouter un initialiseur avec le chargement de votre fichier et l'utiliser pour définir votre base de données.

Par exemple, vous pouvez ajouter cela dans un initialiseur.

mongoid_conf = YAML::load_file(Rails.root.join('config/mongoid.yml'))[Rails.env] 

Mongoid.configure do |config| 
config.master = Mongo::Connection.new(mongoid_conf['host'], 
             mongoid_conf['port']).db(mongoid_conf['database']) 
end 
+0

merci qui a fonctionné pour moi. –

3

Si vous écrivez votre propre script non-rails et que vous initialisez d'abord vos modèles, vous obtiendrez cette erreur.

Vous devez configurer la base de données avant d'initialiser le modèle.

je frappe quand écrire un petit bijou qui a utilisé en interne MongoId

cas de test ont frappé aussi bien si la section a mis Mongoid.configure dans votre test/helper.rb

Questions connexes