我这样做:
@disabled_options = []
Category.where('ancestry is NULL').each do |cat|
@disabled_options << cat.id if cat.has_children?
end
有没有更优雅的方式让没有孩子的所有父母?
答案 0 :(得分:2)
这个单行可能对你有帮助。
Category.where(id: Category.pluck(:ancestry).compact.map { |e| e.split('/') }.flatten.uniq)
答案 1 :(得分:1)
Category.where("id IN (SELECT parent_id FROM categories)")
假设parent_id
是指向父类别的字段。
这将选择使用“parent_id”指向的那些类别,因此如果有子项,则子项将设置“parent_id”,因此“parent_id”引用的类别具有子项。