使用activerecord有一种简单的方法来获取查询的总计数吗?

时间:2016-01-19 05:51:58

标签: ruby-on-rails ruby-on-rails-4 activerecord

我有以下查询:

@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),但必须有一个简单的方法来包括这是响应,是不是?

我正在寻找的是在可能的情况下将其作为单个查询的方法。

1 个答案:

答案 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来实现此目标!