Rails statischer Datensatz

9

Was ist der beste Weg, um einen statischen Datensatz (nicht dynamisch) zu behandeln?

Nehmen wir zum Beispiel an, Sie haben ein Modell mit zehn verschiedenen Instanzen, von denen jede einzigartig ist, aber sich während der gesamten Lebensdauer Ihrer Anwendung nie ändert. Es scheint übertrieben, ein ActiveRecord-Modell zu erstellen und diese Daten in der Datenbank zu speichern, aber es scheint hässlich, eine generische Klasse zu erstellen und diese Daten im Code zu speichern.

Was wird als Best Practice akzeptiert?

Beispiel:

Sie haben eine Bewertung und einen Nutzer . Ein Benutzer kann eine Stufe von 1-10 haben, wenn sich die Stufe ändert, ändert sich die Rate. Die Rate kann andere Informationen enthalten, sodass es einfacher ist, sie als Attribut auf dem Benutzer zu speichern, als es wert ist. Wäre es sinnvoll, sie an eine Rate zu binden oder sie als eine Methode für den Benutzer wie folgt zu erstellen:

%Vor%

Es scheint, dass keine der Lösungen ideal ist, aber ich bin nicht sicher, ob es etwas anderes Ideales gibt, das passieren könnte.

    
andrewpthorp 14.11.2012, 16:11
quelle

2 Antworten

1

Ich würde diese Informationen in einer YAML-Datei speichern. Du kannst das RailsConfig-Juwel verwenden und eine YAML-Datei wie

erstellen %Vor%

Und dann greifen Sie mit

darauf zu %Vor%

(Ich bin mir nicht ganz sicher, ob Zahlen in YAML als Schlüssel verwendet werden, vielleicht musst du ihnen entkommen)

    
Sven Koschnicke 14.11.2012, 17:17
quelle
0

Ich verwende Konstanten in diesen Fällen: Konstanten ändern sich nicht nach der Deklaration, aber die Deklaration kann dynamisch sein:

%Vor%

Die Performance sollte besser sein, wenn Konstanten für statische Werte verwendet werden, weil sie Memo sein sollten (und weil die Statik ihr Zweck sein sollte, also vertrauen Ruby-Implementierungen wahrscheinlich darauf; ich lese etwas über JRuby und Konstantenimplementierung, ich poste es wenn ich finden werde. BEARBEITEN Ich habe es gefunden: Ссылка ).

    
mdesantis 14.11.2012 16:24
quelle