İçeriğe geç

Filtrelemeden Önce Sıralama (ARCH6076)

Anahtar ruby.performance.orderby-before-where · Önem warning · Kategori performance

Bir koleksiyon zincirinde sıralamayı filtreden önce yapmak, gereğinden büyük bir kümeyi sıralar. Önce filtreleyip sonra sıralayın.

def top_active(users)
users.sort_by(&:created_at)
.select(&:active?)
.first(10)
end
def top_active(users)
users.select(&:active?)
.sort_by(&:created_at)
.first(10)
end

Zincirde filtreyi sıralamadan önce uygulayın; böylece daha küçük bir küme sıralanır.