【问题标题】:Doing conditional count with ActiveRecord objects使用 ActiveRecord 对象进行条件计数
【发布时间】:2016-04-19 04:17:55
【问题描述】:
Food.where(meat: true).count do |food|
  food.chunky?
end

只是与Food.where(meat: true).count 做同样的事情,因为正在执行 SQL 样式的计数,而不是 Enumerable#count 类型的计数。

除了添加each 之外,还有什么方法可以进行Enumerable#count 类型的计数,如下所示?

Food.where(meat: true).each.count do |food|
  food.chunky?
end

(是的,我意识到做 food.chunky? 涉及创建 food 对象并在其上调用方法,而不是在数据库级别做所有事情 - 有时无法避免)

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 rails-activerecord enumerable


    【解决方案1】:

    这可能有效(注意:未经测试)。

    Food.where(meat: true).select{|f| f.chunky? }.count
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-08
      • 2021-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多