J'ai une base de données avec une table de produit. La table n'a que 7 articles et préférerait pouvoir les stocker tout en mémoire au lieu de la base de données, mais je voudrais toujours la possibilité d'utiliser l'inférence de type d'enregistrement actif. FIND_BY, PREMIER, DERNIER,. Où (Quelqu'un paramètre de requête). p>
est-ce possible dans les rails 5.2 avec Postgres 11? P>
Je lisais à propos de la mémoire SQLite3, mais je ne sais pas si cela est une meilleure utilisation pour cela. Je préférerais également ne pas changer d'application entière sur SQLite. P>
3 Réponses :
chemin paresseux:
config / application.rb p> Notez que vos associations seront toujours chargées à partir de la base de données. P> P> rails.application.things.detect {| chose | chose.name == "Nom cool"} code> p>
Si vous n'avez que si peu de lignes dans la table des produits, vous n'avez pas besoin de vous inquiéter de frapper la DB pour les récupérer. Il existe de nombreuses façons d'éviter les requêtes de base de données inutiles, mais nous ne pouvons pas vous recommander de ne pas utiliser la DB pour ce modèle sans connaître les relations et la manière dont ils pourraient être utilisés dans votre application. Si vous n'avez pas besoin de modèle de données relationnel ou de MVC pour les produits, vous pouvez utiliser un tableau constant et que Max a mentionné dans les commentaires, vous pouvez utiliser des méthodes énumérables sur des matrices normales telles que:
Product.by_names([:racquets, :sneakers])
Les rails officiels Docs fournissent des détails sur mise en cache de faible niveau qui On dirait que cela pourrait fonctionner p>
Vous pouvez définir un nom de clé statique et une longue période d'expiration p>
Pourquoi veux-tu faire cela? Vous pouvez utiliser tableau # Trouver et Array # Sélectionnez au lieu de
Find_By CODE> et
Où CODE> respectivement