J'ai deux modèles:application Rails __gVirt_NP_NN_NNPS<__ perfomance ou comment mettre en cache résultat de la méthode
Program < ActiveRecord::Base
has_many :events
def federal_financing
events.sum(&:federal_financing)
end
def regional_financing
events.sum(&:regional_financing)
end
def local_financing
events.sum(&:local_financing)
end
end
Event < ActiveRecord::Base
belongs_to :program
# events table have this decimal fields: federal_financing, local_financing, regional_financing
end
toujours si je l'appelle l'un de ces trois méthodes que je vous appelle encore les. Donc, je veux éviter de charger des événements chaque fois que j'appelle l'une de ces méthodes. La solution actuelle est maintenant de définir
def after_initialize
@all_events = events
end
et d'utiliser @all_events à la place des événements dans les méthodes. MAIS je ne veux pas charger les événements lorsque l'objet se charge - Je veux des événements "cache" uniquement si l'une de ces trois méthodes a été appelée et d'autres méthodes doivent utiliser la version mise en cache des événements.