1

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

最终,我希望将活着的父母人数和他们孩子的人数相加——但希望我应该会没事的,一旦我掌握了第一手……

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

在此先感谢您的帮助,非常感谢!!

4

1 回答 1

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
于 2013-01-31T09:19:15.893 回答