2016-11-08 3 views
1

Wenn ein Modell Parent zwei Kindermodelle hat: AChild und BChild, so dass:Count alle Kinder über Klassenobjekte

@parent.a_childs.count = 1 
@parent.b_childs.count = 2 

Gibt es eine bestehende Methode, so dass:

@parent.count_all_children = 3 
+0

Sind die polymorphe Kinder? – Antonio

+0

In welcher Hinsicht meinst du? – james

+0

Sie könnten der Elternklasse eine Methode hinzufügen –

Antwort

0

, dass die Annahme, Parent Modell has_many Mitarbeiter AChild und , ist dies eine Lösung für eine beliebige Anzahl von Kindmodellen. Löschen Sie die folgende Methode in die übergeordnete Modelldatei:

Das verwendet Reflexion und kann relativ langsam sein. Wenn Sie nur haben diese beiden Kindermodelle und beabsichtigen nicht, hinzuzufügen (m) nicht mehr, dann summieren nur die beiden:

def count_all_children 
    self.a_childs.count + self.b_childs.count 
end