好了,我有一个棘手的ruby问题。我有类别和文件,其中文件下面的1个类别。以下文档仅适用于级别2的类别,例如:(请使用块引号)
类别1 -->集团1 -->单据1,单据2,单据3
--> Group 2 --> [Doc 4, Doc 5, Doc 6]类别2 -->组1 -->单据7
--> Group 2 --> [Doc 8]我已经成功地在第二级确定了每个类别中的文档数量(例如,在group 1)中使用此代码:
category.associated_docs.count但是,如何查找1级类别所有下级的单据总数?
我知道我可以做以下事情,但是我如何得到总和呢?
category.children.each do |category|
category.associated_docs.count谢谢!
发布于 2013-07-13 17:41:49
如果文档是ActiveRecord格式的,那么您可能需要执行一个SQL查询来有效地选择所有关联的文档,然后对这些文档执行计数。否则,涉及ruby对象数组迭代的命令可能会花费相当长的时间。
否则,您可能想要尝试执行以下操作:
类别{|category.children.map| category.associated_docs}.flatten.count
map命令将返回一个包含许多子数组的数组,每个子数组包含每个类别的相关文档。flatten命令将它们合并到一个单级数组中,从该数组中使用count对它们进行计数非常简单。
https://stackoverflow.com/questions/17627401
复制相似问题