2011-10-13 8 views
6

Mam kilka rekordów z kilkoma atrybutami (A, B, C, D).Jak znaleźć maksymalny atrybut dla rekordów w ruby?

Chcę być w stanie znaleźć zapis, który ma większą wartość dla danego atrybutu, takie jak D.

Jak mam to zrobić?

+1

Czy możesz dać nam coś więcej do pracy? Jak przechowywane są zapisy? – rwilliams

+0

Co się stanie, jeśli liczba rekordów "x" ma tę samą maksymalną wartość atrybutu i chcę odzyskać całą liczbę rekordów "x"? – VoodooChild92

Odpowiedz

19

Możesz dać mu wygląd: max_by.

objects = [some array of objects] 

object_with_highest_value = objects.max_by {|obj| obj.desired_value } 
2

W zależności od tego ile masz rekordy, może to być bardziej efektywne, aby przeprowadzić wyszukiwanie w DB. Chciałbym zamówić przez pożądany atrybut malejący i wziąć pierwszy rekord:

User.order('field DESC').first 
Powiązane problemy