Estoy tratando de obtener un resultado mejor y más organizado del uso de la herencia de clases con MongoMapper, pero tengo algunos problemas.MongoMapper Parent Herencia
class Item
include MongoMapper::Document
key :name, String
end
class Picture < Item
key :url, String
end
class Video < Item
key :length, Integer
end
Cuando ejecuto los siguientes comandos, no devuelven exactamente lo que esperaba.
>> 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?">]
todos son el mismo resultado, esperaría tener Item.all
lista de todos los resultados, por lo que incluir en sí, Picture
y Video
. Pero si el artículo es en realidad un Picture
, me gustaría que se devuelva si ejecuté Picture.all
y no si ejecuto Video.all
. ¿Ves lo que quiero decir?
¿Entiendo mal cómo funciona la herencia aquí? Si yo soy, ¿cuál es la mejor manera de replicar este tipo de comportamiento? Intento seguir this (punto 2) como una guía de cómo quiero que funcione. Supongo que puede ejecutar Link.all
para encontrar todos los enlaces y no incluir todas las demás clases heredadas del Item
. ¿Me equivoco?
Muchas gracias. Fue bastante frustrante por decir lo menos! – Garrett