
Geavanceerde ActiveRecord-query's
Query interface, where, joins, includes, eager loading, N+1-probleem, transactions, locking (optimistic/pessimistic)
1Welke ActiveRecord-methode haalt een record op aan de hand van de primaire sleutel en gooit een exception als het niet wordt gevonden?
Welke ActiveRecord-methode haalt een record op aan de hand van de primaire sleutel en gooit een exception als het niet wordt gevonden?
Antwoord
De find-methode haalt een record op aan de hand van de primaire sleutel en gooit een ActiveRecord::RecordNotFound-exception als het record niet bestaat. Dit zorgt ervoor dat de code expliciet faalt in plaats van door te gaan met een nil-waarde. Om de exception te vermijden en in plaats daarvan nil terug te geven, gebruik je find_by(id: value).
2Wat is het belangrijkste verschil tussen find_by en where.first in ActiveRecord?
Wat is het belangrijkste verschil tussen find_by en where.first in ActiveRecord?
Antwoord
find_by geeft direct een enkel record of nil terug, terwijl where.first een ActiveRecord-relatie teruggeeft en vervolgens first aanroept om het eerste resultaat te krijgen. In de praktijk genereert find_by een geoptimaliseerde query met LIMIT 1, terwijl where mogelijk meer gegevens laadt voordat het eerste element wordt geselecteerd.
3Hoe geef je meerdere voorwaarden door aan de where-methode in ActiveRecord?
Hoe geef je meerdere voorwaarden door aan de where-methode in ActiveRecord?
Antwoord
De where-methode accepteert een hash met meerdere sleutels om meerdere voorwaarden op te geven die met AND worden gecombineerd. Bijvoorbeeld, User.where(status: 'active', role: 'admin') genereert WHERE status = 'active' AND role = 'admin'. Voor OR-voorwaarden gebruik je or of ruwe SQL-query's.
Wat is het N+1-probleem in ActiveRecord?
Welke methode gebruik je om het N+1-probleem op te lossen door associaties vooraf te laden?
+25 gespreksvragen
Andere Ruby on Rails-sollicitatieonderwerpen
Ruby-basis
Objectgeoriënteerd programmeren in Ruby
Rails-grondbeginselen
Routing & Controllers
ActiveRecord-basis
Views & ERB-templates
ActiveRecord-associaties
Rails-formulieren
Authenticatie & autorisatie
Moderne Asset Pipeline & frontend
Rails API-modus
Testen met RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Cachingstrategieën
Geavanceerde migraties
Rails Engines & modulaire apps
Prestatie-optimalisatie
Rails Design Patterns
Ruby-metaprogrammering
Rails-beveiliging
GraphQL met Rails
Deployment & Productie
Monitoring & Logging
Rails-upgradestrategieën
Beheers Ruby on Rails voor je volgende gesprek
Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.
Begin gratis