2010-12-14 5 views
3

augmentierenden habe ich ein Modell mit Rails Attributen X, Y, Zein Rails Modell mit virtuellen Attributen auf Laufzeit

Ich mag dynamisch Attribute P, Q zu diesem Modell hinzuzufügen während des Datenabrufs. Die Attribute P, Q brauchen keine Persistenz und sind nur für die Front-End-Manipulation.

Ist das überhaupt möglich? Ich könnte dies erreichen, indem ich P, Q in einem anderen Objekt speichere und dieses zusammen mit dem ursprünglichen Modell manipuliere, aber daran denke, hier nach dem besten Weg zu fragen.

[Schienen 2.3.5, Rubin 1.8,7]

Antwort

0

so etwas wie dieses Versuchen in Ihrem Modell

def p 
    @p || @p = fetch_p 
end 

Diese Sie können your_model.p nennen. Beim ersten Aufruf wird die Funktion fetch_p aufgerufen und als Klassenattribut gespeichert. Bei jedem nachfolgenden Aufruf wird einfach der zwischengespeicherte Wert zurückgegeben.

+0

was macht fetch_p? – papdel

+0

fetch_up sollte von Ihnen geschrieben werden. Es erhält den Wert von p, ob es irgendwie berechnet oder von irgendwoher abgerufen wurde (eine Datei, eine Datenbank, was auch immer). Mit anderen Worten, fetch_p macht alles, was Sie meinen, wenn Sie sagen: "Fügen Sie während des Datenabrufs dynamisch Attribute P diesem Modell hinzu". –

Verwandte Themen