搜索 sort_link 以获得 SQL COUNT()、SUM 和 AVERAGE

Ransack sort_link for SQL COUNT(), SUM and AVERAGE

我想为以下查询添加排序链接:

@q = Order.group(:suburb).select("suburb, COUNT(*) as count, SUM(total) as total, AVG(total) as average").ransack(params[:q])

然而当我使用:

<%= sort_link(@q, :average) %>

URL 已正确填充,但未进行排序! 当我检查@q.sorts 时,列是正确的。

数据库中没有平均列,所以它不会那样工作。你可以尝试用 ransacker 破解它:

ransacker :average do
  Arel.sql('average')
end

所以当找到平均值时将使用这个平均值。