J'essaie d'obtenir un résultat mieux organisé en utilisant l'héritage de classe avec MongoMapper, mais en ayant des problèmes.MongoMapper Parent Inheritance
class Item
include MongoMapper::Document
key :name, String
end
class Picture < Item
key :url, String
end
class Video < Item
key :length, Integer
end
Quand je lance les commandes suivantes, ils ne reviennent pas tout à fait ce que je me attends.
>> Item.all
=> [#<Item name: "Testing", created_at: Sun, 03 Jan 2010 20:02:48 PST -08:00, updated_at: Mon, 04 Jan 2010 13:01:31 PST -08:00, _id: 4b416868010e2a04d0000002, views: 0, user_id: 4b416844010e2a04d0000001, description: "lorem?">]
>> Video.all
=> [#<Video name: "Testing", created_at: Sun, 03 Jan 2010 20:02:48 PST -08:00, updated_at: Mon, 04 Jan 2010 13:01:31 PST -08:00, _id: 4b416868010e2a04d0000002, views: 0, user_id: 4b416844010e2a04d0000001, description: "lorem?">]
>> Picture.all
=> [#<Picture name: "Testing", created_at: Sun, 03 Jan 2010 20:02:48 PST -08:00, updated_at: Mon, 04 Jan 2010 13:01:31 PST -08:00, _id: 4b416868010e2a04d0000002, views: 0, user_id: 4b416844010e2a04d0000001, description: "lorem?">]
Ils sont tous le même résultat, j'attendre d'avoir Item.all
liste tous les résultats, donc y compris lui-même, Picture
et Video
. Mais si l'article est en fait un Picture
, je voudrais qu'il soit retourné si j'ai couru Picture.all
et pas si je cours Video.all
. Est-ce que tu vois ce que je veux dire? Est-ce que je me méprends sur la façon dont l'héritage fonctionne ici? Si je suis ce qui est le meilleur moyen de reproduire ce genre de comportement? J'essaie de suivre (point 2) comme une ligne directrice de la façon dont je veux ce travail. Je suppose qu'il peut exécuter Link.all
pour trouver tous les liens, et ne pas inclure toutes les autres classes qui héritent de Item
. Ai-je tort?
Merci beaucoup. C'était assez frustrant pour dire le moins! – Garrett