Ich habe STI mehrfach verwendet. Betrachten wir ein CMS, das haben könnte Seite, NewsItem, BlogItem etc.
Sie verfügen jeweils von einer gemeinsamen Klasse absteigen könnten, die wiederum von Active erbt. Die Tabelle für jeden wäre der gleiche (Titel, Körper, Tags, published_at), aber jedes Modell könnte unterschiedliche Assoziationen hat oder verschiedene Zustände oder einen anderen Workflow, so dass jeder benutzerdefinierten Code in der eigenen Klasse. Doch sie alle haben eine gemeinsame Tisch und Elternklasse. Es ermöglicht auch mir die Elternklasse zu verwenden, um eine Quer Klasse sucht und hat die resultierende Array von Datensatz automatisch gegossenen Typen zu tun.
Es gibt auch andere Möglichkeiten, dies und vielleicht nicht das beste Beispiel in Angriff zu nehmen, aber es gibt sicherlich Zeiten, in denen STI für Situationen praktisch, in denen das Verhalten von Objekten unterscheiden können aber beibehalten Zustand gleich ist. Natürlich müssen Sie sicher sein, dies in Zukunft auch wahr ist.
In Ihrem Fall Kommentare und Kontakt-Meldungen sind unterschiedlich. Es klingt wie dort gibt es keinen Nutzen, indem sie in der gleichen Tabelle mit. Vielleicht setzte gemeinsamen Code in einer übergeordneten Klasse oder besser noch in einem Modul in / lib.