2010-01-20 6 views
3

est-il logique d'enregistrer le nom de la classe dans un champ lors de l'utilisation de l'héritage avec mongomapper/rails?Héritage avec MongoMapper: recherche dans la classe parent

class Item 
    include MongoMapper::Document 
    timestamps! 
    key :class, String # does this actually make sense? 
    key :title, String 
end 

class Post < Item 
    key :body1, String 
end 

class Page < Item 
    key :body2, String 
end 

Si une recherche de Item est effectuée, MongoMapper retournera des objets Item. il n'est pas clair, quel genre d'objets ils sont. si nous voulons afficher une icône ou quelque chose de similaire pour distinguer les éléments les uns des autres, cela pourrait être fait en enregistrant le nom de la classe dans le db. Est-ce que cela a du sens, ou y a-t-il un meilleur moyen?

Répondre

1

vous pouvez jeter un oeil à ce fil stackoverflow: MongoMapper Parent Inheritance

fait que vous utilisez « _type » comme nom de clé, mongomapper ajoute automatiquement le nom de la classe à l'entrée:

key :_type, String 
+0

remerciements pour la réponse. En fait, je demandais plus si c'est une bonne pratique du point de vue de la conception, mais c'est une réponse, alors je l'ai accepté. –

Questions connexes