# Zaawansowane zapytania ActiveRecord (Ruby on Rails) > Query interface, where, joins, includes, eager loading, problem N+1, transactions, locking (optimistic/pessimistic) - 28 pytań z rozmów - Mid-Level - [Pytania z rozmów: Ruby on Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne.md) ## 1. Która metoda ActiveRecord pobiera rekord po jego kluczu głównym i zgłasza wyjątek, jeśli nie zostanie znaleziony? **Odpowiedź** Metoda find pobiera rekord po jego kluczu głównym i zgłasza wyjątek ActiveRecord::RecordNotFound, jeśli rekord nie istnieje. Zapewnia to, że kod zawodzi jawnie, zamiast kontynuować z wartością nil. Aby uniknąć wyjątku i zamiast tego zwrócić nil, użyj find_by(id: value). ## 2. Jaka jest główna różnica między find_by a where.first w ActiveRecord? **Odpowiedź** find_by zwraca bezpośrednio pojedynczy rekord lub nil, podczas gdy where.first zwraca relację ActiveRecord, a następnie wywołuje first, aby uzyskać pierwszy wynik. W praktyce find_by generuje zoptymalizowane zapytanie z LIMIT 1, podczas gdy where może potencjalnie załadować więcej danych przed wybraniem pierwszego elementu. ## 3. Jak przekazać wiele warunków do metody where w ActiveRecord? **Odpowiedź** Metoda where przyjmuje hash z wieloma kluczami, aby określić wiele warunków, które zostaną połączone za pomocą AND. Na przykład User.where(status: 'active', role: 'admin') generuje WHERE status = 'active' AND role = 'admin'. W przypadku warunków OR użyj or lub surowych zapytań SQL. ## Jeszcze 25 dostępnych pytań - Czym jest problem N+1 w ActiveRecord? - Której metody użyć, aby rozwiązać problem N+1 poprzez wstępne ładowanie asocjacji? Zarejestruj się za darmo: https://sharpskill.dev/pl/login ## Inne tematy rekrutacyjne Ruby on Rails - [Podstawy Ruby](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/ruby-basics.md): 25 pytań, Junior - [Programowanie obiektowe w Ruby](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/ruby-oop.md): 20 pytań, Junior - [Podstawy Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-fundamentals.md): 18 pytań, Junior - [Routing & Controllers](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/routing-controllers.md): 22 pytań, Junior - [Podstawy ActiveRecord](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/active-record-basics.md): 25 pytań, Junior - [Widoki i szablony ERB](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/views-erb-templates.md): 20 pytań, Junior - [Asocjacje ActiveRecord](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/active-record-associations.md): 24 pytań, Mid-Level - [Formularze Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-forms.md): 20 pytań, Mid-Level - [Uwierzytelnianie i autoryzacja](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/authentication-authorization.md): 22 pytań, Mid-Level - [Nowoczesny Asset Pipeline i frontend](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-asset-pipeline.md): 18 pytań, Mid-Level - [Tryb API Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-api-mode.md): 20 pytań, Mid-Level - [Testowanie z RSpec](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-testing-rspec.md): 24 pytań, Mid-Level - [ActiveJob & Background Jobs](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/active-job-background-jobs.md): 20 pytań, Mid-Level - [ActionCable & WebSockets](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/action-cable-websockets.md): 18 pytań, Mid-Level - [ActionMailer](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/action-mailer.md): 18 pytań, Mid-Level - [ActiveStorage](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/active-storage.md): 20 pytań, Mid-Level - [Strategie cachowania](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/caching-strategies.md): 20 pytań, Mid-Level - [Zaawansowane migracje](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/database-migrations-advanced.md): 20 pytań, Mid-Level - [Rails Engines i aplikacje modułowe](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-engines-modular-apps.md): 18 pytań, Senior - [Optymalizacja wydajności](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/performance-optimization.md): 26 pytań, Senior - [Wzorce projektowe w Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-design-patterns.md): 22 pytań, Senior - [Metaprogramowanie w Ruby](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/ruby-metaprogramming.md): 20 pytań, Senior - [Bezpieczeństwo Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-security.md): 22 pytań, Senior - [GraphQL z Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/graphql-rails.md): 20 pytań, Senior - [Wdrażanie i Produkcja](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-deployment-production.md): 20 pytań, Senior - [Monitoring & Logging](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/monitoring-logging.md): 20 pytań, Senior - [Strategie aktualizacji Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-upgrade-strategies.md): 18 pytań, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/active-record-queries