Snelle referentie

Rails tips & trucs spiekbriefje

Een snelle naslaggids voor Rails-prestatietips, console-debugsneltoetsen, query-optimalisaties en ontwikkelproductiviteit.

· Gepubliceerd

Essentiële productiviteitssneltoetsen, patronen voor geheugenoptimalisatie en foutopsporingstrucs voor dagelijkse Rails-ontwikkeling.

Query- & Geheugenoptimalisaties

1. pluck versus map

pluck doorzoekt databasekolommen rechtstreeks zonder ActiveRecord Ruby-modelobjecten in het geheugen te instantiëren:

# TRAAG: Instantieert 10.000 User-objecten in het geheugen
User.all.map(&:email)

# SNEL: Selecteert alleen de kolom email als een array van strings
User.pluck(:email)

2. Batchverwerking met find_each

Voorkom dat enorme tabellen in één keer in het geheugen worden geladen:

# Laadt in batches van 1.000 records
User.find_each(batch_size: 1000) do |user|
  user.sync_with_crm
end

Console-productiviteitssneltoetsen

# Toegang tot het resultaat van de laatst geëvalueerde expressie
user = User.find(1)
_ # Geeft het user-object terug

# Uitvoeringstijd meten in console
Benchmark.ms { 1000.times { User.count } }

# Rails-applicatiecode opnieuw laden zonder de console te herstarten
reload!

Tijdstempels bijwerken (touch)

Werk de updated_at-tijdstempel van een bovenliggend model bij wanneer een onderliggende associatie verandert:

class Comment < ApplicationRecord
  belongs_to :article, touch: true
end

Referenties

Verwante onderwerpen