2009-02-26 16 views
0

Ich habe eine Klasse, die von ActiveRecord :: Base abgeleitet ist. Diese Klasse hat eine Unterklasse, die in der Datenbank durch eine Typ-ID-Spalte unterschieden wird. Wie stelle ich sicher, dass alle geerbten aktiven Datensatzfunktionen in den abgeleiteten Klassen die Spalte type_id an den Bedingungshash für alle Abfragen anfügen, die von der abgeleiteten Klasse ausgeführt werden? Gibt es irgendwelche "Vorher" -Funktionen, die ich außer Kraft setzen könnte, um eine Bedingung in den Prozess für die abgeleiteten Klassen einzufügen?Finden Methoden in abgeleiteten Klassen mit ActiveRecord - Single Table Vererbung

Danke!

Antwort

3

Wenn Ihre Spalte "Typ" genannt wurde, würde ActiveRecord das automatisch für Sie tun.

+0

Danke - das funktioniert großartig, als ich in eine Spalte namens Typ wechselte. ActiveRecord fügt den Namen des Modells für jedes Objekt in die Spalte type ein. – Mattew

+0

Wenn Sie den Spaltennamen nicht ändern möchten, können Sie auch die Deklaration set_inheritance_column verwenden –

1

Was Sie tun, heißt Single Table Inheritance (STI). Das ist der Grund, warum das, was Radar gesagt hat, dass Ihre Kolumne als Typ bezeichnet wird.

Verwandte Themen