getting the position of a record within an index

Hi,

Let's say that in my "users" table I have a column called "points" that is indexed. I would like to be able to query the position of any given user within that index. In other words, I want the same data that the following method would give:

def rank   result = 0   User.find(:all).each {|u| result=result+1 if u.points > points}   result end

However I can't use the above method because the user database has a quarter of a million records and is growing.

Help! and Thanks in advance. Ben

class User    def self.having_more_points_than points      count(:conditions => [ 'points > ?', points ])    end

   def rank      self.class.having_more_points_than(self.points) + 1    end end

You might want to save the value in an instance variable if you refer to the rank more than once per request.

-Rob

Rob Biedenharn http://agileconsultingllc.com Rob@AgileConsultingLLC.com

ah, that is great Rob -- thanks!!

Ben