gpt4 book ai didi

ruby-on-rails - 使用 named_scope 获取行数

转载 作者:数据小太阳 更新时间:2023-10-29 06:40:50 25 4
gpt4 key购买 nike

Rails 专家:感谢另一位 SO 用户,我刚刚发现了 named_scope。 :)

我想获取一组行的计数 - 即 SELECT COUNT(*)。此外,我希望仍然能够在调用中链接命名范围。

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

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

然后我可以做(例如):

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

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

(Edited to address Allan's comments)

你可以这样做:

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

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

有更好的方法吗?

最佳答案

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

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

如果您在开发模式下运行 script/server,您将在查询执行时看到它们。

关于ruby-on-rails - 使用 named_scope 获取行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/411134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com