meine erste Frage, sei sanft :-)Rails 4: der richtige Weg, um Hash-Tabelle aus der Datenbank zu initialisieren?
Ich habe eine Rails-Anwendung mit Textstücken aus einer Datenbank (Tabelle enthält im Grunde eine kurze Taste k und den entsprechenden Text; eine Art wie i18n, aber aus Gründen außerhalb Umfang hier möchte ich jetzt nicht verwenden). Erstellt eine kleine Hilfsfunktion für die Ansichten, um den übereinstimmenden Text nach Schlüssel zu erhalten, in der Art von "Text.find_by k: x". Die Hölle einer Datenbank laden, aber die Texte können dynamisch von einem CMS geändert werden.
Da sich aber herausstellte, dass sich die Texte selten ändern, wollte ich stattdessen die gesamte Tabelle in einen Hash laden. Da ich nicht sicher bin, wo solche Initialisierung Sachen zu setzen, und auch, weil ich faul Laden dachte kühl sein könnte, hier ist das, was ich habe (vereinfacht):
module MainHelper
...
@@items = nil
def getText(x)
initItems if [email protected]@items
@@items[x]
end
private
def initItems
@@items = {}
Text.all.each {|t| @@items[t.k] = t.text} #load from model
end
Welche sehr gut zu funktionieren scheint. Aber da ich hier ziemlich neu bin, frage ich mich, ob irgendjemand denkt, dass es eine bessere Lösung gibt, oder eine Lösung, die eher "die Schiene" ist? Alle Kommentare sehr geschätzt!