Rails 请教排序的问题

kevinjry · 2014年02月07日 · 最后由 zw963 回复于 2014年02月09日 · 2385 次阅读

我的第一帖,留个记号 👶

刚刚学写 Rails, 遇到一个问题 : 我按下面的方法把 @users_robotic_catch 进行排序,

@users_robotic_catch = User.all( :conditions => 'robotic_catch != 0', :order => 'robotic_catch DESC', :limit => '10' )

如果我想得到其中一个 user 在这个排序中的具体位置,也就是排名,我应该怎么查询?

求教,谢谢! ❤

each_with_index

#1 楼 @gaicitadie 是我没表述清楚,, 需要的 current_user 的排名

听上去像序列搜索问题。用二分搜索?

@users_robotic_catch.to_a.index(current_user) + 1

User.where("robotic_catch > ?", current_user.robotic_catch).order(robotic_catch: :desc).count + 1

#5 楼 @Rei 咦..这已经不需要 order 了吧..

#8 楼 @ruohanc 奥,是哦。

User.where("robotic_catch > ?", current_user.robotic_catch).count + 1

#9 楼 @Rei

那为什么不可以

User.where("robotic_catch >= ?", current_user.robotic_catch).count

呢?

#10 楼 @zw963 如果有好几个同分,排位就会靠后,不符合直觉。比如除去第一名,二、三名同分,一般说并列第二而不是并列第三。

#11 楼 @Rei

哦~ 了解了。谢谢。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号