Ich versuche, ein besseres und organisierteres Ergebnis zu erhalten, indem ich die Klassenvererbung mit MongoMapper verwende, aber einige Probleme habe.MongoMapper Elternvererbung
class Item
include MongoMapper::Document
key :name, String
end
class Picture < Item
key :url, String
end
class Video < Item
key :length, Integer
end
Wenn ich die folgenden Befehle ausführen, geben sie nicht ganz zurück, was ich erwarte.
>> 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?">]
Sie sind alle das gleiche Ergebnis, würde ich Item.all
Liste alle Ergebnisse erwarten haben, so mit sich, Picture
und Video
. Aber wenn der Artikel tatsächlich eine Picture
ist, möchte ich es zurückgegeben, wenn ich Picture.all
lief und nicht, wenn ich Video.all
ausführen. Verstehst du, was ich meine?
Bin ich falsch verstanden, wie die Vererbung hier funktioniert? Wenn ich bin, was ist der beste Weg, um diese Art von Verhalten zu replizieren? Ich versuche, this (Punkt 2) als eine Richtlinie zu folgen, wie ich diese Arbeit will. Ich nehme an, er kann Link.all
laufen lassen, um alle Verbindungen zu finden, und nicht jede andere Klasse einschließen, die von Item
erbt. Liege ich falsch?
Sie so viel Dank. War ziemlich frustrierend, gelinde gesagt! – Garrett