Ruby on Rails

Kueri ActiveRecord Lanjutan

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

28 pertanyaan wawancara·
Mid-Level
1

Metode ActiveRecord mana yang mengambil record berdasarkan primary key-nya dan memunculkan exception jika tidak ditemukan?

Jawaban

Metode find mengambil record berdasarkan primary key-nya dan memunculkan exception ActiveRecord::RecordNotFound jika record tidak ada. Ini memastikan kode gagal secara eksplisit alih-alih melanjutkan dengan nilai nil. Untuk menghindari exception dan mengembalikan nil sebagai gantinya, gunakan find_by(id: value).

2

Apa perbedaan utama antara find_by dan where.first di ActiveRecord?

Jawaban

find_by langsung mengembalikan satu record atau nil, sedangkan where.first mengembalikan relation ActiveRecord lalu memanggil first untuk mendapatkan hasil pertama. Dalam praktiknya, find_by menghasilkan kueri yang dioptimalkan dengan LIMIT 1, sementara where berpotensi memuat lebih banyak data sebelum memilih elemen pertama.

3

Bagaimana cara meneruskan beberapa kondisi ke metode where di ActiveRecord?

Jawaban

Metode where menerima hash dengan beberapa kunci untuk menentukan beberapa kondisi yang akan digabungkan dengan AND. Misalnya, User.where(status: 'active', role: 'admin') menghasilkan WHERE status = 'active' AND role = 'admin'. Untuk kondisi OR, gunakan or atau kueri SQL mentah.

4

Apa itu masalah N+1 di ActiveRecord?

5

Metode mana yang digunakan untuk menyelesaikan masalah N+1 dengan memuat asosiasi terlebih dahulu?

+25 pertanyaan wawancara

Kuasai Ruby on Rails untuk wawancara berikutnya

Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.

Mulai gratis