2011-09-15 4 views
0

Je ne sais pas ce qui se passe mais je n'arrive pas à trouver un très petit morceau de code. J'ai utilisé mongomappper sans documents intégrés et tout s'est bien passé. En utilisant un document intégré, j'ai frappé le mur de briques. Je en suivant les instructions sur l'utilisation de la console mongomapper homepage Rails:Mongomapper: Le document incorporé ne fonctionne pas correctement

Voici mes modèles:

class Assessment 
    include Mongomapper::Document 
    many :sections 
end 

class Section 
    include MongoMapper::EmbeddedDocument 
    key :title, String 
    validates_presence_of :title 
end 

Quand je lance:
a = Assessment.create(:sections => [ Section.new(:title => 'test') ])

je vais obtenir la sortie suivante:

=> #<Assessment _id: BSON::ObjectId('4e71efce69a74c0fb6000002'), sections: nil>

J'ai également essayé avec a = Assessment.new(), a.sections << Section.new(:title => "test")
mais le même résultat.

Pourquoi n'y a-t-il rien à l'intérieur des sections?

+0

Quelle version de Mongo? Quelle version de MongoMapper? Je pense que MongoMapper et Mongo 2.0 ne jouent pas encore bien ensemble. Voir: http://groups.google.com/group/mongomapper/browse_thread/thread/8aab1abe6a0b348d?hl=fr%3Fhl%3Den –

+1

J'ai vérifié mes versions et je courais mongodb 2.0.0, mongomapper 0.9.2, Rails 3.0 .10, Ruby 1.9.2p290. J'ai désinstallé mongo et installé la version 1.8.3. J'ai la même erreur. – jackie

+0

Je pense que j'ai juste confondu avec la façon dont les données sont affichées. mm 0.9.1 n'imprime pas 'sections: nil' mais 0.9.2 fait bien qu'il y ait des sections à l'intérieur ... – jackie

Répondre

1

Y compris:

attr_accessible :sections 

devrait faire le travail de créer (à fait pour moi). Et vous aurez probablement envie d'ajouter:

validates_associated :sections 

pour rendre votre évaluation valider les sections intégrées de la façon dont vous auriez probablement attendre. Oui, quelques années en retard, mais j'ai dû résoudre ce problème et Google m'a amené ici.