在Rails中按表列排序

时间:2013-12-08 00:12:25

标签: sql ruby-on-rails ruby-on-rails-3 activerecord rails-activerecord

我用这个撕掉了我的头发;我有一系列记录,我需要从数据库中建立一个数组。 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

1 个答案:

答案 0 :(得分:1)

我认为您不能将order与符号结合使用。请尝试以下方法:

@opinions = Opinion.order('positive_votes desc').limit(5)