对查询返回的结果进行排序,例如嵌套查询

时间:2016-10-10 06:55:42

标签: ruby-on-rails ruby postgresql

我有一个查询,我用它来查找关键字一个巨大的表的最新排名。我使用以下查询来实现这一目标。

@results = KeywordRanking.includes(:business_keyword, :keyword)
                           .where("business_keyword_id in (?)",
                                  biz_keywords.select(:id))
                           .select("distinct on (business_keyword_id) *")
                           .order("business_keyword_id, rank_date desc")

最初我们曾经在前端进行分页,但最近我们转向了will_paginate并要求在后端对其进行排序。但是当我传入另一个订单查询时。它会附加到现有查询中,这使得系统不仅可以对rank_date进行排序,还可以对第二个字段进行排序。

我现在按照下面的顺序传递

@result = if params[:sort]
  @result.order("#{params[:sort]} desc")
end

在编写原始查询时,我们只是构建一个嵌套查询,我们对结果进行排序。我们如何在rails中做到这一点。

0 个答案:

没有答案