Ruby on Rails

Gelişmiş ActiveRecord Sorguları

Query interface, where, joins, includes, eager loading, N+1 problemi, transactions, locking (optimistic/pessimistic)

28 mülakat soruları·
Mid-Level
1

Hangi ActiveRecord metodu bir kaydı primary key'ine göre getirir ve bulunamazsa bir exception fırlatır?

Cevap

find metodu bir kaydı primary key'ine göre getirir ve kayıt yoksa bir ActiveRecord::RecordNotFound exception'ı fırlatır. Bu, kodun nil değerle devam etmek yerine açıkça hata vermesini sağlar. Exception'dan kaçınıp bunun yerine nil döndürmek için find_by(id: value) kullanın.

2

ActiveRecord'da find_by ile where.first arasındaki temel fark nedir?

Cevap

find_by doğrudan tek bir kayıt veya nil döndürürken, where.first bir ActiveRecord relation döndürür ve ardından ilk sonucu almak için first çağırır. Pratikte find_by, LIMIT 1 ile optimize edilmiş bir sorgu üretir, oysa where ilk öğeyi seçmeden önce potansiyel olarak daha fazla veri yükleyebilir.

3

ActiveRecord'da where metoduna birden fazla koşul nasıl iletilir?

Cevap

where metodu, AND ile birleştirilecek birden fazla koşul belirtmek için birden çok anahtar içeren bir hash kabul eder. Örneğin, User.where(status: 'active', role: 'admin') WHERE status = 'active' AND role = 'admin' üretir. OR koşulları için or veya ham SQL sorguları kullanın.

4

ActiveRecord'da N+1 problemi nedir?

5

İlişkileri önceden yükleyerek N+1 problemini çözmek için hangi metot kullanılır?

+25 mülakat soruları

Bir sonraki mülakatın için Ruby on Rails'de uzmanlaş

Tüm sorulara, flashcards'a, teknik testlere, code review alıştırmalarına ve mülakat simülatörlerine eriş.

Ücretsiz başla