
Query ActiveRecord avanzate
Query interface, where, joins, includes, eager loading, problema N+1, transactions, locking (optimistic/pessimistic)
1Quale metodo di ActiveRecord recupera un record tramite la sua chiave primaria e solleva un'eccezione se non viene trovato?
Quale metodo di ActiveRecord recupera un record tramite la sua chiave primaria e solleva un'eccezione se non viene trovato?
Risposta
Il metodo find recupera un record tramite la sua chiave primaria e solleva un'eccezione ActiveRecord::RecordNotFound se il record non esiste. Questo garantisce che il codice fallisca in modo esplicito invece di continuare con un valore nil. Per evitare l'eccezione e restituire nil al suo posto, usa find_by(id: value).
2Qual è la differenza principale tra find_by e where.first in ActiveRecord?
Qual è la differenza principale tra find_by e where.first in ActiveRecord?
Risposta
find_by restituisce direttamente un singolo record o nil, mentre where.first restituisce una relazione ActiveRecord e poi chiama first per ottenere il primo risultato. In pratica, find_by genera una query ottimizzata con LIMIT 1, mentre where potrebbe caricare più dati prima di selezionare il primo elemento.
3Come passare più condizioni al metodo where in ActiveRecord?
Come passare più condizioni al metodo where in ActiveRecord?
Risposta
Il metodo where accetta un hash con più chiavi per specificare più condizioni che verranno combinate con AND. Ad esempio, User.where(status: 'active', role: 'admin') genera WHERE status = 'active' AND role = 'admin'. Per le condizioni OR, usa or o query SQL grezze.
Cos'è il problema N+1 in ActiveRecord?
Quale metodo usare per risolvere il problema N+1 precaricando le associazioni?
+25 domande da colloquio
Altri argomenti di colloquio Ruby on Rails
Fondamenti di Ruby
Programmazione orientata agli oggetti in Ruby
Fondamenti di Rails
Routing & Controllers
Fondamenti di ActiveRecord
Views e template ERB
Associazioni ActiveRecord
Form Rails
Autenticazione e autorizzazione
Asset Pipeline moderno e frontend
Modalità API di Rails
Test con RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Strategie di caching
Migrazioni avanzate
Rails Engines e app modulari
Ottimizzazione delle prestazioni
Design Pattern in Rails
Metaprogrammazione in Ruby
Sicurezza in Rails
GraphQL con Rails
Deployment e Produzione
Monitoring & Logging
Strategie di upgrade di Rails
Padroneggia Ruby on Rails per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis