【问题标题】:ActiveRecord has_many count of parent object with matching childActiveRecord has_many 匹配子对象的父对象计数
【发布时间】:2016-02-18 22:00:05
【问题描述】:

我正在尝试找到执行此查询的 Ruby 方式。我有两个对象,DocumentComponent。一个组件belongs_to 一个文档和一个文档可以有零个、一个或多个组件。

我想要的是所有具有组件的文档的计数。我不在乎文档只有一个组件还是二十个组件。

我尝试做的是Component.group(:document_id).count,但这给了我一个哈希值:{162=>1, 163=>2}(文档 162 有 1 个组件,文档 163 有 2 个)。

所以基本上考虑到这个结果,我希望查询返回的是2(文档 162 和 163 是唯一具有组件的文档)。

【问题讨论】:

    标签: ruby-on-rails ruby activerecord


    【解决方案1】:
    Document.joins(:components).uniq.count
    

    【讨论】:

      【解决方案2】:

      根据你目前正在做的事情:

      Component.group(:document_id).count.keys.uniq.count
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-02
        • 1970-01-01
        • 2015-01-04
        • 1970-01-01
        • 2020-01-30
        • 1970-01-01
        • 2019-11-27
        • 1970-01-01
        相关资源
        最近更新 更多