7
我想從MongoMapper的類繼承中獲得更好的組織結果,但遇到了一些麻煩。MongoMapper父繼承
class Item
include MongoMapper::Document
key :name, String
end
class Picture < Item
key :url, String
end
class Video < Item
key :length, Integer
end
當我運行以下命令時,它們不會完全返回我所期望的。
>> 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?">]
他們都是同樣的結果,我希望有Item.all
列表中的所有結果,所以包含自身Picture
和Video
。但是如果該物品實際上是Picture
,我希望如果我運行Picture.all
而不是運行Video.all
,則會返回該物品。你明白我的意思嗎?
我誤解了這裏的繼承是如何工作的?如果我是複製這種行爲的最佳方式是什麼?我試圖按照this(第2點)作爲我想要這項工作的指導原則。我假設他可以運行Link.all
來查找所有鏈接,並且不包括從Item
繼承的其他每個類。我錯了嗎?
太謝謝你了。說起來很沮喪! – Garrett 2010-01-06 22:14:04