活动记录模型中的Rails错误

时间:2016-10-16 13:06:09

标签: activerecord ruby-on-rails-5

我正在练习我的代码,很快我发现'.order'方法正好相反。我的rails版本是'5.0.0.1'

我用过它:

(i)User.order(salary :: desc).first(3)

(ii)User.order(salary :: desc).first(3)

我得到了相反的结果。我正在使用mysql数据库。任何人都可以告诉我它是我的错误还是真的是轨道问题。

1 个答案:

答案 0 :(得分:0)

如果您尝试获得升序结果,则应该执行升序而不是降序。以下代码将按升序对salary进行排序,并获得前3个。

User.order(salary: :asc).first(3)

您在下面提供的代码将按降序对工资进行排序,然后选择第一个3.

User.order(salary: :desc).first(3)

示例:给定一个未排序值[3,2,4,5,1]的数组。执行以下代码后,您将得到如下结果
User.order(salary: :desc)>>> [5, 4, 3, 2, 1]
User.order(salary: :desc).first(3)>>> [5, 4, 3]
User.order(salary: :asc)>>> [1, 2, 3, 4, 5]
User.order(salary: :desc).first(3)>>> [1, 2, 3]