J'ai quelques tables qui sont rarement modifiées. Malheureusement, j'ai besoin d'appeler ces tables assez souvent dans les contrôleurs et cela ajoute du temps de chargement à certaines pages. Par exemple, dans un contrôleur je:Rails: Existe-t-il un moyen de charger les informations de la base de données lors de l'initialisation?
class PagesController < ApplicationController
def index
@groups = Group.all
@events = Event.all
end
end
Il m'a alors produite que, depuis les groupes et les événements changent rarement, je pouvais charger ces variables dans les initialiseurs ou comme des constantes dans un modèle afin qu'ils font réellement pas besoin interroger la base de données dans le moment. J'ai changé le ci-dessus à ce qui suit:
class Group < ApplicationRecord
ALL = Group.all
end
class Event < ApplicationRecord
ALL = Event.all
end
class PagesController
def index
@groups = Group::ALL
@events = Event::ALL
end
end
La solution ci-dessus fonctionne réellement en développement. En production sur Heroku, cependant, il charge les variables dans le contrôleur. J'ai également essayé de configurer un initialiseur et de définir ::Groups = Group.all
mais cela charge encore les données lorsqu'il est appelé dans le contrôleur. Est-il possible de charger des informations de base de données lors de l'initialisation d'une manière qui fonctionnera sur Heroku?