
Zaawansowane zapytania ActiveRecord
Query interface, where, joins, includes, eager loading, problem N+1, transactions, locking (optimistic/pessimistic)
1Która metoda ActiveRecord pobiera rekord po jego kluczu głównym i zgłasza wyjątek, jeśli nie zostanie znaleziony?
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).
2Jaka jest główna różnica między find_by a where.first w ActiveRecord?
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.
3Jak przekazać wiele warunków do metody where w ActiveRecord?
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.
Czym jest problem N+1 w ActiveRecord?
Której metody użyć, aby rozwiązać problem N+1 poprzez wstępne ładowanie asocjacji?
+25 pytań z rozmów
Inne tematy rekrutacyjne Ruby on Rails
Podstawy Ruby
Programowanie obiektowe w Ruby
Podstawy Rails
Routing & Controllers
Podstawy ActiveRecord
Widoki i szablony ERB
Asocjacje ActiveRecord
Formularze Rails
Uwierzytelnianie i autoryzacja
Nowoczesny Asset Pipeline i frontend
Tryb API Rails
Testowanie z RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Strategie cachowania
Zaawansowane migracje
Rails Engines i aplikacje modułowe
Optymalizacja wydajności
Wzorce projektowe w Rails
Metaprogramowanie w Ruby
Bezpieczeństwo Rails
GraphQL z Rails
Wdrażanie i Produkcja
Monitoring & Logging
Strategie aktualizacji Rails
Opanuj Ruby on Rails na następną rozmowę
Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.
Zacznij za darmo