我正在尝试在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,这要归功于范围排序最活跃。
连连呢?感谢
答案 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个记录。 但是,它仍然需要测试和基准测试。