我有以下查询:
@jobs = Job.where(publisher_id: params[:publisher_id], status: status).order(order_by => order_dir).offset(start).limit(limit)
我希望能够得到它的总结果数。简单的方法是这样做:
@jobs = Job.where(publisher_id: params[:publisher_id], status: status).count
但是,有没有办法只包含查询的总结果?我知道有kaminari宝石(和will_paginate),但必须有一个简单的方法来包括这是响应,是不是?
我正在寻找的是在可能的情况下将其作为单个查询的方法。
答案 0 :(得分:0)
绝对是的,你可以这样做:
@jobs = Job.where(publisher_id: params[:publisher_id], status: status).select('*, COUNT(*) OVER(PARTITION BY id) AS count')
count = @jobs.first.count
我正在使用window function来实现此目标!