Snabbreferens

Rails tips och tricks fusklapp

En snabb referensguide för prestandatips i Rails, felsökningsgenvägar i konsolen, databasfrågeoptimering och utvecklingsproduktivitet.

· Publicerad

Viktiga genvägar för produktivitet, mönster för minnesoptimering och felsökningstricks för daglig Rails-utveckling.

Fråge- och minnesoptimeringar

1. pluck vs map

pluck frågar databaskolumner direkt utan att instantiera ActiveRecord-modellobjekt i minnet:

# LÅNGSAMT: Instantierar 10 000 User-objekt i minnet
User.all.map(&:email)

# SNABBT: Hämtar endast email-kolumnen som en array av strängar
User.pluck(:email)

2. Batchbearbetning med find_each

Undvik att ladda enorma tabeller till minnet på en gång:

# Laddar i batcher om 1 000 poster
User.find_each(batch_size: 1000) do |user|
  user.sync_with_crm
end

Produktivitetsgenvägar för konsolen

# Få tillgång till resultatet av det senast utvärderade uttrycket
user = User.find(1)
_ # Returnerar user-objektet

# Mät exekveringstid i konsolen
Benchmark.ms { 1000.times { User.count } }

# Ladda om Rails-applikationskod utan att starta om konsolen
reload!

Uppdatera tidsstämplar (touch)

Uppdatera en föräldramodells updated_at-tidsstämpel när en barnassociation uppdateras:

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

Referenser

Relaterade ämnen