祖先 - 如何让所有父母没有孩子?

祖先 - 如何让所有父母没有孩子?

问题描述:

我这样做是这样的:祖先 - 如何让所有父母没有孩子?

@disabled_options = [] 
Category.where('ancestry is NULL').each do |cat| 
    @disabled_options << cat.id if cat.has_children? 
end 

有没有更优雅的方式来获得无子女的所有父?

+0

你想查找所有的'父母'(所有有孩子的分类)还是你想找到所有'根'(所有没有父母的分类)? – 2012-07-06 17:43:06

+0

所有有孩子的类别 – user984621 2012-07-06 17:54:49

Category.where("id IN (SELECT parent_id FROM categories)") 

假设parent_id是指向父类别的字段。

这将选择那些使用“parent_id”指向的类别,所以如果有孩子,孩子将设置“parent_id”,因此“parent_id”引用的类别具有孩子。

这一行可能会帮助你。

Category.where(id: Category.pluck(:ancestry).compact.map { |e| e.split('/') }.flatten.uniq)