我有一个我创建的联赛表:
QuizuserAnswer.all(:include =>:user, :select => 'user_id, SUM(answer) AS points', :group =>'user_id', :order=>'points DESC'
这将返回如下对象:
=> [#<QuizuserAnswer user_id: 340>, #<QuizuserAnswer user_id: 348>]
现在我想找到一个特定用户的排名表位置。有干净的方式吗?或者我是否必须遍历al列?
答案 0 :(得分:11)
从很小的时候我就得到了你的问题我觉得你想要跟随
这样的事情answers = QuizuserAnswer.all(:include =>:user, :select => 'user_id, SUM(answer) AS points', :group =>'user_id', :order=>'points DESC')
user_id = 348
answers.map(&:user_id).index(user_id) #This will return 1
即它将返回用户在答案列表中给出的答案的位置