Rails Rails 如何用一句 SQL 语句查询出记录总数和部分记录

fangxing204 · 2016年07月02日 · 最后由 xiaoronglv 回复于 2016年07月05日 · 1987 次阅读

想实现一个模糊搜索,对搜索结果需要分页,所以我需要满足条件的记录总数,同时又需要部分记录,能用一句代码做到吗?

users = User.where(User.arel_table[:name].matches("%#{params[:search_string]}%")).order(:name).limit(count).offset(count*(page-1))

用一条语句是一个伪需求啊!你的真实需求其实应该是速度快,一条语句当然可以写,但是其实不如分开快...你看 Rails 的分页其实都是两条 SQL 的,没必要追求一条 SQL...

#2 楼 @hooopo

有时候故意多写一行,那个变量名就纯当注释用。

# before
title = comment.commentable.title

# after
document = comment.commentable
title = document.title
需要 登录 后方可回复, 如果你还没有账号请 注册新账号