【发布时间】:2017-10-13 11:24:36
【问题描述】:
我有这个由 activerecord 查询返回的数组:
SELECT id, value FROM table ORDER BY value DESC
[1054, 86], [1062, 86], [1059, 84]
我创建了一个简单的数组来与第一个数组进行比较:
array.sort_by! { |对象| object.access_count }.reverse }
但是当我比较两个数组时,结果是不同的:
activerecord => [1054, 86], [1062, 86], [1059, 84]
array.sort_by! => [[1062, 86], [1054, 86], [1059, 84]
所以在某些情况下比较不起作用,因为 activerecord 以一种方式排序并且 sort_by!排序另一个。
我该如何解决? 谢谢。
【问题讨论】:
-
你想通过比较两者来达到什么目的?你能解释一下吗? @gui12344455
-
是的,我正在使用 rspec 测试我的代码,其中一项测试是验证返回的数据是否正确排序。
-
所以您正在尝试测试活动记录的
order方法。实际上,在 RSpec 中,我们负责测试我们编写的代码。您无需在这里测试订单。如果您需要为订单编写测试用例,在规范中您可以进行类似records = Model.only(:id, :name).order(:desc)的查询并像这样检查expected(response_records).to eq(records)
标签: ruby-on-rails arrays sorting activerecord