ma première question, soyez doux :-)Rails 4: la bonne façon d'initialiser la table de hachage à partir de la base de données?
J'ai une application de rails en utilisant des morceaux de texte d'une base de données (table contient fondamentalement une courte clé k et le texte correspondant, sorte de comme i18n, mais pour des raisons de portée ici je ne veux pas utiliser cela maintenant). Fait une petite fonction d'aide pour les vues pour obtenir le texte correspondant par clé, le long des lignes de "Text.find_by k: x". Enfer d'une charge de base de données mais permettant aux textes d'être changés dynamiquement par un CMS.
Mais comme il s'est avéré que les textes changent rarement, j'ai voulu précharger la table entière dans un hachage à la place. Puisque je ne suis pas sûr où mettre une telle substance d'initialisation, et aussi parce que je pensais que le chargement paresseux pourrait être cool, voici ce que je ne (simplifié):
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
Ce qui semble fonctionner à merveille. Mais puisque je suis un débutant ici, je me demande si quelqu'un pense qu'il existe une meilleure solution, ou une solution qui est plus "la voie des rails"? Des commentaires très appréciés!