Rails通过sql查找以查找模型的自引用子集

Rails通过sql查找以查找模型的自引用子集,sql,ruby-on-rails,activerecord,model,self-join,Sql,Ruby On Rails,Activerecord,Model,Self Join,我有一段简单的关系: class Organization < ActiveRecord::Base belongs_to :parent_organization, class_name: 'Organization' end 类组织

我有一段简单的关系:

class Organization < ActiveRecord::Base
  belongs_to :parent_organization, class_name: 'Organization'
end
类组织
因此,一个组织可以与作为其父组织的另一个组织相关联

我正在寻找一种方法来返回当前作为父对象的所有
组织
实例

基本上,在
组织#父组织(u id
列中高效地查找id被引用的所有组织,这样我就可以设置如下范围:

Organization.parent
,它将返回作为父级的所有组织

谢谢


Joe

你应该能够做这样的事情:

Organization.where("id in (?)", Organization.pluck(:parent_organization_id))
然后,您可以将其用作范围,以使使用更方便:

scope :parent, where("id in (?)", Organization.pluck(:parent_organization_id))