2010-11-22 39 views
0

J'essaye de créer un modèle MongoMapper qui a un tableau d'attributs. Ce tableau devrait contenir toutes sortes d'informations (Entiers, Flotteurs, URL, Enums, Dates, Relations avec d'autres documents) selon le désir de l'utilisateur.MongoMapper et propriétés de type personnalisé

Mon problème est de savoir comment implémenter le tableau d'attributs, comment implémenter le type de données personnalisé des attributs. Je suppose que le document sérialisé devrait ressembler à ceci:

{ 
    ... 
    attributes: { 
    age: { 
     name: "Age", 
     type: "Integer", 
     value: 12 
    }, 
    height: { 
     name: "Height", 
     type: "Float", 
     value: 1.86 
    }, 
    mother: { 
     name: "Mother", 
     type: "Relation\Person", 
     value: "\people\sara" 
    } 
    } 
} 

Des idées comment aborder ce problème? Ma première idée était de créer une classe de base comme une usine qui doit sérialiser et désérialiser les attributs, mais d'après ce que j'ai réussi à coder, rien ne fonctionnait correctement.

Merci d'avance!

Répondre

0

Vous pouvez créer un type personnalisé, mais si vous avez un tableau, pourquoi ne pas utiliser un objet incorporé?

Voir ceci: http://speakerdeck.com/u/jnunemaker/p/mongomapper-mapping-ruby-to-and-from-mongo

Diapositives 47-49.

+0

J'ai essayé de le faire en utilisant des documents intégrés, mais je suppose que je ne suis pas très bon à des explications :) J'ai changé mes modèles un peu et je suppose que tout commence à fonctionner à peu près parfait. Merci :) –