Food.where(meat: true).count do |food|
food.chunky?
end
与Food.where(meat: true).count
完全相同,因为正在进行SQL样式计数,而不是Enumerable#count
类型的计数。
除了Enumerable#count
之外,有没有办法进行each
类型的计数,如下所示?
Food.where(meat: true).each.count do |food|
food.chunky?
end
(是的,我知道做food.chunky?
涉及创建food
个对象并在其上调用方法,而不是在数据库级别执行所有操作 - 有时无法避免)
答案 0 :(得分:1)
这可能有用(注意:未经测试)。
Food.where(meat: true).select{|f| f.chunky? }.count