如何计算属于所选父母列表的子女数量?

时间:2013-01-30 15:22:30

标签: ruby-on-rails

我有一个列表 - grandparent.parents.where(:alive => true),我需要统计属于这些父母的孩子(属于这个特定的祖父母)。

最后,我想要总结活着的父母数量和数量。他们的孩子 - 但希望我一切都好,一旦我第一次握手......

显然,grandparent.parents.where(:alive => true).children.count不起作用,但希望你能得到我的目标......

提前感谢您的帮助,非常感谢!!

1 个答案:

答案 0 :(得分:0)

我假设父母和孩子之间的关系很简单has_onebelongs_to - 因此假设您parent_id属性为Children模型。我还假设每个孩子的Parents模型中只列出了一个父母...很多假设,所以让我们知道你的模型结构。

如果上述假设为真,请尝试以下所有父母的子女总数:

array = []
grandparent.parents.where(:alive => true).each do |parent|
     c = Children.find_all_by_parent_id(parent.id).count
     array << c
end

array.sum

或者这是每个父母的子女数量:

    grandparent.parents.where(:alive => true).each do |parent|
        Children.find_all_by_parent_id(parent.id).count
    end