2012-04-01 3 views
0

Meine Anforderung ist, dass ich ein Objekt (Tee) aktualisieren möchte, wenn nicht Runden auf es gespielt wurden. Wenn dort Runden gespielt wurden, möchte ich, dass das Objekt (tee) archiviert wird (aktives Attribut auf false gesetzt wird) und dass die Aktualisierungen auf einen Klon des Objekts angewendet werden.Überschreiben Update zu entweder Update oder Archivieren in Schienen

Mein erster Gedanke war, dass ich die Update-Methode in dem T-Modell wie so überschrieben werden würde und eine private Methode, die das Archiv, Klon und Änderung Griffe:

def update 
    if(self.rounds.count == 0) 
    super 
    else 
    #archive, clone and apply changes 
    archive_clone_and_change 
    return false 
    end 
end 

Das fühlt sich zwar schmutzig, weil ich bin wieder Ein false bei einem erfolgreichen Archivupdate. Es wird auch schwierig, wenn ich versuche, die Änderungen in der Methode archive_clone_and_change anzuwenden.

Sollte ich dies im Controller anstelle der Methode tun oder macht meine Vorgehensweise Sinn?

Antwort

0

Modell vs. Controller Entscheidungen, sie können subjektiv werden, aber ich würde es in der Steuerung. Es ist wirklich Logik, die auf das Modell angewendet wird, nicht direkt auf das Modell selbst bezogen.

+0

Dank..der mehr Zeit, die ich verbringen denke darüber, je mehr ich denke, du hast Recht. Danke, dass Sie sich die Zeit genommen haben, meine Frage zu beantworten. – cmaxwell