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