2011-10-13 20 views
6

Tôi có một số bản ghi với một số thuộc tính (A, B, C, D).Làm cách nào để tìm thuộc tính tối đa trên các bản ghi trong ruby?

Tôi muốn để có thể tìm thấy trong đó kỷ lục có giá trị cao hơn cho một thuộc tính nhất định, chẳng hạn như D.

Làm thế nào để làm điều đó?

+1

Bạn có thể cung cấp cho chúng tôi một số thứ để làm việc không? Các hồ sơ lưu trữ như thế nào? – rwilliams

+0

Điều gì sẽ xảy ra nếu số lượng bản ghi 'x' có cùng giá trị thuộc tính tối đa và tôi muốn lấy lại tất cả số bản ghi 'x'? – VoodooChild92

Trả lời

19

Bạn có thể cung cấp cho max_by giao diện.

objects = [some array of objects] 

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

Tùy thuộc vào số lượng bản ghi bạn có, có thể hiệu quả hơn để thực hiện tìm kiếm trên DB. Tôi sẽ đặt hàng theo thuộc tính mong muốn giảm dần và lấy hồ sơ đầu tiên:

User.order('field DESC').first 
Các vấn đề liên quan