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))