首页 > 解决方案 > 使用 Pagy 分页按分数排序?

问题描述

我目前正在尝试按分数订购一些 ActiveRecord 记录。在我的控制器中,我有:

def index
    @pagy, @drivers = pagy(
        Driver.select(
            'drivers.*',
            '(drivers.no_races + drivers.no_poles + drivers.no_podiums + drivers.no_wins) AS score'
        ).reorder('drivers.score DESC'),
        page: params[:page],
        items: 16
    )
  end

我正在使用 Pagy 进行分页。如代码所示,我执行查询以选择所有驱动程序,然后将表中的 3 列加在一起作为“分数”。然后我想按分数从高到低排序,每页显示 16 条记录。当页面加载时,它似乎是按驱动程序 ID 排序的。我看不到我有订单的其他任何地方,但我确实添加了重新排序以覆盖其他任何内容。无论如何,无论出于何种原因,我都坚持错误的顺序。任何方向表示赞赏:-)

样机 - http://29qg.hatchboxapp.com/drivers

标签: ruby-on-rails

解决方案


好的,最后这是一个简单的错误。"score" is ambiguous因为我使用 score 作为别名,并且我在表中还有一个名为 score 的列。


推荐阅读