# Query ActiveRecord avanzate (Ruby on Rails) > Query interface, where, joins, includes, eager loading, problema N+1, transactions, locking (optimistic/pessimistic) - 28 domande da colloquio - Mid-Level - [Domande da colloquio: Ruby on Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio.md) ## 1. 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). ## 2. 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. ## 3. 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. ## Altre 25 domande disponibili - Cos'è il problema N+1 in ActiveRecord? - Quale metodo usare per risolvere il problema N+1 precaricando le associazioni? Registrati gratis: https://sharpskill.dev/it/login ## Altri argomenti di colloquio Ruby on Rails - [Fondamenti di Ruby](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/ruby-basics.md): 25 domande, Junior - [Programmazione orientata agli oggetti in Ruby](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/ruby-oop.md): 20 domande, Junior - [Fondamenti di Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-fundamentals.md): 18 domande, Junior - [Routing & Controllers](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/routing-controllers.md): 22 domande, Junior - [Fondamenti di ActiveRecord](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-record-basics.md): 25 domande, Junior - [Views e template ERB](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/views-erb-templates.md): 20 domande, Junior - [Associazioni ActiveRecord](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-record-associations.md): 24 domande, Mid-Level - [Form Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-forms.md): 20 domande, Mid-Level - [Autenticazione e autorizzazione](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/authentication-authorization.md): 22 domande, Mid-Level - [Asset Pipeline moderno e frontend](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-asset-pipeline.md): 18 domande, Mid-Level - [Modalità API di Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-api-mode.md): 20 domande, Mid-Level - [Test con RSpec](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-testing-rspec.md): 24 domande, Mid-Level - [ActiveJob & Background Jobs](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-job-background-jobs.md): 20 domande, Mid-Level - [ActionCable & WebSockets](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/action-cable-websockets.md): 18 domande, Mid-Level - [ActionMailer](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/action-mailer.md): 18 domande, Mid-Level - [ActiveStorage](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-storage.md): 20 domande, Mid-Level - [Strategie di caching](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/caching-strategies.md): 20 domande, Mid-Level - [Migrazioni avanzate](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/database-migrations-advanced.md): 20 domande, Mid-Level - [Rails Engines e app modulari](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-engines-modular-apps.md): 18 domande, Senior - [Ottimizzazione delle prestazioni](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/performance-optimization.md): 26 domande, Senior - [Design Pattern in Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-design-patterns.md): 22 domande, Senior - [Metaprogrammazione in Ruby](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/ruby-metaprogramming.md): 20 domande, Senior - [Sicurezza in Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-security.md): 22 domande, Senior - [GraphQL con Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/graphql-rails.md): 20 domande, Senior - [Deployment e Produzione](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-deployment-production.md): 20 domande, Senior - [Monitoring & Logging](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/monitoring-logging.md): 20 domande, Senior - [Strategie di upgrade di Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-upgrade-strategies.md): 18 domande, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-record-queries