给出查询如何减少项目数量

时间:2011-05-17 23:31:00

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

我正在尝试在rails 3中执行以下操作:

@groups_active = Group.active_groups(current_user)

active_groups是一个范围。此查询工作正常。然后我想做以下事情:

if @groups_active.count > 9
   @groups_active[0..10]
end

如果@groups_active中有超过10个项目的含义,请选择TOP 10,这要归功于范围排序最活跃。

连连呢?感谢

2 个答案:

答案 0 :(得分:2)

我不确定你的问题是什么。您可以使用Model.your_scope.limit(10)限制查询的结果数量,如果它是不适用于SQL LIMIT的查询,则可以使用Model.your_scope.first(10)。这是一个Array#first,它接受​​一个fixnum参数,可以按预期使用...

答案 1 :(得分:0)

@groups_active = Group.active_groups(current_user).limit(10)

或者您可以将.limit(10)部分添加到您的范围。

<强>被修改

我会使用一个限制(10)请求和一个计数。它可能更有效,然后检索20,50或更多记录,并仅使用前10个记录。 但是,它仍然需要测试和基准测试。