0
class Foo < ActiveRecord::Base {
   has_many :bars
}

foo = Foo.find(1)
foo.bars.count

这是计算条数的最佳方法还是有有效的方法

4

2 回答 2

3

如果您的模型完全标准化,那么这将是最有效的方法。

如果你需要做很多,你可以缓存表bars上的计数Foo

Railscast 第 23 集涵盖了计数器缓存,此信息在当前 Rails 版本中仍然是正确的。

于 2012-11-29T10:50:54.873 回答
1

是的,这是最有效的方式,因为 ActiveRecord 将其转换为适当的 SELECT COUNT(*) SQL 语句,这比加载所有记录数据并在数组中计数要高效得多。

于 2012-11-29T10:55:34.923 回答