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
ここで継承がどのように機能するかを誤解していますか?私がこの種の行動を再現するための最良の方法は何ですか?私はこれをどのように機能させたいかについてのガイドラインとしてこれ(ポイント2)に従おうとしています。Link.all
彼はすべてのリンクを見つけるために走ることができ、から継承する他のすべてのクラスを含めることはできないと思いItem
ます。私が間違っている?