ruby-on-rails - 使用 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 排序的。我看不到我有订单的其他任何地方,但我确实添加了重新排序以覆盖其他任何内容。无论如何,无论出于何种原因,我都坚持错误的顺序。任何方向表示赞赏:-)
解决方案
好的,最后这是一个简单的错误。"score" is ambiguous
因为我使用 score 作为别名,并且我在表中还有一个名为 score 的列。
推荐阅读
- python - Python Marshmallow 基于条件的验证
- python - 查找数字列表的阶乘 Python
- java - 导入 Jar 的 Spring bean 属性被应用程序 bean 定义覆盖
- reactjs - React Intl,如何一次编译多个语言文件?
- java - 如何验证 @PathVariable 已设置?
- scala - 如何在Scala中生成n天的动态日期范围
- wpf - 带有动画内容的 WPF 切换按钮
- javascript - 为从 javascript 数组创建的某些表格单元格着色
- javascript - 如何以编程方式关闭在 Kiosk 模式下运行的 Chrome?
- sqlite - 颤动如何获取代码行号'警告数据库已锁定0:00:10.000000