Raccourcis essentiels de productivité, modèles d'optimisation mémoire et astuces de débogage pour le travail quotidien sur Rails.
Optimisations des requêtes et de la mémoire
1. pluck vs map
pluck interroge directement les colonnes en base de données sans instancier d'objets modèles ActiveRecord en mémoire :
# LENT : Instancie 10 000 objets User en mémoire
User.all.map(&:email)
# RAPIDE : Ne sélectionne que la colonne email dans un tableau de chaînes
User.pluck(:email)
2. Traitement par lots avec find_each
Évitez de charger des tables géantes en mémoire d'un seul coup :
# Charge par lots de 1 000 enregistrements
User.find_each(batch_size: 1000) do |user|
user.sync_with_crm
end
Raccourcis de productivité dans la console
# Accéder au résultat de la dernière expression évaluée
user = User.find(1)
_ # Retourne l'objet user
# Mesurer le temps d'exécution dans la console
Benchmark.ms { 1000.times { User.count } }
# Recharger le code de l'application sans relancer la console
reload!
Mise à jour des horodatages (touch)
Mettre à jour l'horodatage updated_at d'un modèle parent lorsqu'une association enfant est modifiée :
class Comment < ApplicationRecord
belongs_to :article, touch: true
end