Sto cercando di ottenere un risultato migliore e organizzato dall'utilizzo dell'ereditarietà della classe con MongoMapper, ma con qualche problema.Ereditarietà di MongoMapper
class Item
include MongoMapper::Document
key :name, String
end
class Picture < Item
key :url, String
end
class Video < Item
key :length, Integer
end
Quando eseguo i seguenti comandi, non del tutto restituiscono quello che mi aspetto.
>> 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?">]
Sono tutti lo stesso risultato, mi sarei aspettato di avere Item.all
lista di tutti i risultati, quindi incluso se stesso, Picture
e Video
. Ma se l'articolo è in realtà un Picture
, vorrei che venga restituito se corro Picture.all
e non se corro Video.all
. Capisci cosa intendo?
Sto fraintendendo come funziona l'eredità qui? Se io sono qual è il modo migliore per replicare questo tipo di comportamento? Sto cercando di seguire this (punto 2) come linea guida su come voglio questo lavoro. Presumo che possa eseguire Link.all
per trovare tutti i collegamenti e non includere ogni altra classe che eredita da Item
. Ho sbagliato?
grazie mille. Era piuttosto frustrante per non dire altro! – Garrett