Wichtige Produktivitäts-Shortcuts, Muster zur Speicheroptimierung und Debugging-Tricks für den täglichen Rails-Alltag.
Abfrage- & Speicheroptimierungen
1. pluck vs. map
pluck fragt Datenbankspalten direkt ab, ohne ActiveRecord-Ruby-Modellobjekte im Arbeitsspeicher zu instanziieren:
# LANGSAM: Instanziiert 10.000 User-Objekte im Speicher
User.all.map(&:email)
# SCHNELL: Wählt nur die Email-Spalte als String-Array aus
User.pluck(:email)
2. Stapelverarbeitung mit find_each
Vermeiden Sie das gleichzeitige Laden riesiger Tabellen in den Speicher:
# Lädt in Batches von jeweils 1.000 Datensätzen
User.find_each(batch_size: 1000) do |user|
user.sync_with_crm
end
Produktivitäts-Shortcuts für die Konsole
# Zugriff auf das Ergebnis des zuletzt evaluierten Ausdrucks
user = User.find(1)
_ # Gibt das User-Objekt zurück
# Ausführungszeit in der Konsole messen
Benchmark.ms { 1000.times { User.count } }
# Rails-Anwendungscode neu laden ohne Konsolen-Neustart
reload!
Zeitstempel aktualisieren (touch)
Aktualisieren Sie den updated_at-Zeitstempel eines übergeordneten Modells bei Änderungen an einer Assoziation:
class Comment < ApplicationRecord
belongs_to :article, touch: true
end