class Foo < ActiveRecord::Base {
has_many :bars
}
foo = Foo.find(1)
foo.bars.count
这是计算条数的最佳方式还是有效的方法
答案 0 :(得分:3)
如果你的模型完全正常化,那么这将是最有效的方法。
如果您需要做很多事情,可以将bars
计数缓存在Foo
表格上。
Railscast Episode 23涵盖了计数器缓存,此信息在当前Rails版本中仍然是正确的。
答案 1 :(得分:1)
是的,这是最有效的方式,因为ActiveRecord将其转换为适当的SELECT COUNT(*)SQL语句,这比加载所有记录数据并在数组中计算它们要高效得多。