İçeriğe geç

Döngüde Tembel Yükleme (ARCH6059)

Anahtar ruby.orm.lazy-load-in-loop · Önem warning · Kategori orm

Gezilen koleksiyonun her elemanında tembel-yüklenen bir ilişkiye erişmek, eager-load atlandığında N+1’i çalışma zamanında tetikler. İlişki döngü öncesi yüklenmelidir.

orders.each do |order|
total += order.customer.discount # her tur customer'ı tembel yükler
end
orders = orders.includes(:customer)
orders.each do |order|
total += order.customer.discount
end

Döngüde erişilen ilişkileri includes ile önceden yükleyerek tembel-yükleme tetiklenmesini engelleyin.