我希望能够以User.all
作为第一个结果返回current_user
,其余部分按user.name
按字母顺序排序。
" Rails""" Rails"这样做的方法?我认为将ActiveRecord_Relation转换为数组然后使用.insert
和.delete_at
的组合将目标用户从当前位置移动到前端。我想为此创建一个辅助方法吗?或者有一种完全不同的方法吗?
谢谢!
答案 0 :(得分:1)
不是最多" railsy"方式,但这应该工作:
users = User.all.append(User.find(current_user.id))
users = (users & users).reverse!
答案 1 :(得分:1)
在一个查询中:
users = User.where("id != ?", current_user.id).all.insert(0, User.find(current_user.id))
但是,请记住,围绕User.all
查询构建您的网站几乎总是一个坏主意...在超过10,000名用户之后,您的应用程序将停止运行。无论您在何处进行此查询,都应对结果进行分页。