2

私はこのようにしています:

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

すべての親を子なしで取得するよりエレガントな方法はありますか?

4

2 に答える 2

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

仮定parent_idは、親カテゴリを指すフィールドです。

これにより、「parent_id」を使用して指定されたカテゴリが選択されるため、子がある場合、その子には「parent_id」が設定され、「parent_id」によって参照されるカテゴリには子が含まれます。

于 2012-07-06T18:32:39.043 に答える