我用这个撕掉了我的头发;我有一系列记录,我需要从数据库中建立一个数组。 positive_votes
是每个opinion
上的整数值列,因此我自然希望只获取具有最高整数值的五个Opinion
记录,并从最高位置返回它们(顶部)价值)到第五高。通过阅读Rails指南,我提出了这个问题:
@opinions = Opinion.order(positive_votes: :desc).limit(5)
不幸的是,它不起作用。它似乎正在做的是返回按时间顺序创建的第一条记录,然后返回下面的四条记录。这是漫长的一天,所以我已经做好了充分准备,这是一个愚蠢的错误,但任何帮助都会非常感激。
编辑:
生成的SQL如下,
(0.1ms) SELECT COUNT(count_column) FROM (SELECT 1 AS count_column FROM "opinions" LIMIT 5) subquery_for_count
Opinion Load (0.1ms) SELECT "opinions".* FROM "opinions" ORDER BY '---
:postive_votes: :desc' LIMIT 5
答案 0 :(得分:1)
我认为您不能将order
与符号结合使用。请尝试以下方法:
@opinions = Opinion.order('positive_votes desc').limit(5)