当前位置:  开发笔记 > 编程语言 > 正文

使用named_scope获取行数

如何解决《使用named_scope获取行数》经验,为你挑选了1个好方法。

Rails大师:我刚刚发现named_scope感谢另一个SO用户.:)

我想得到一组行的计数 - 即a SELECT COUNT(*).另外,我希望仍然能够在调用中链接命名范围.

这是命名范围的合法(尽管是奇怪的)用法吗?

named_scope :count, :select => "COUNT(*) as count_all"

那么我可以做(例如):

@foobar = Foobar.count.scope.scope.scope

通过访问计数@foobar.first.count_all.

(编辑解决艾伦的评论)

你可以这样做:

@foobar = Foobar.scope.scope.scope.size

但这会导致结果查询而不是更快的SELECT COUNT(*)查询.我在查询的数据库中有大量的行.

有一个更好的方法吗?



1> zenazn..:

您正在寻找的功能是内置的.

Foobar.count # SELECT count(*) AS count_all FROM "foobars"
Foobar.named_scope.count # SELECT count(*) AS count_all FROM "foobars" WHERE ....

如果您script/server以开发模式运行,您将在执行时看到查询.


咄.有时在轨道上的事情很容易,我很想念.谢谢!
推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有