unk*_*ser 12 ruby ruby-on-rails
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(*)查询.我在查询的数据库中有大量的行.
有一个更好的方法吗?
zen*_*azn 20
您正在寻找的功能是内置的.
Foobar.count # SELECT count(*) AS count_all FROM "foobars"
Foobar.named_scope.count # SELECT count(*) AS count_all FROM "foobars" WHERE ....
如果您script/server以开发模式运行,您将在执行时看到查询.
| 归档时间: | 
 | 
| 查看次数: | 6939 次 | 
| 最近记录: |