2012-03-30 13 views

risposta

10
one_of_oldest_users = User.desc(:age).limit(1).first 

che ti prendo uno di utenti con la maggiore età (nel caso in cui ce ne sono diversi). Se vuoi ottenerli tutti, il modo più semplice è usare un doppio passaggio.

max_age = User.max(:age) 
oldest_users = User.where(age: max_age) 

# or, if you like one-liners 
oldest_users = User.where(age: User.max(:age)) 

Per rendere queste query efficiente, avrete bisogno di un indice sul :age, naturalmente.

+0

Che fallisce se l'età massima è, diciamo, 23 e ce ne sono cinque che hanno quell'età. –

+0

Quindi l'unico modo è ordinare l'intera collezione>? –

+0

@muistooshort: ah, non ha letto abbastanza attentamente. Pensando ... –

Problemi correlati