gpt4 book ai didi

ruby-on-rails - 我怎样才能称呼至少有一个 child 关系的 parent ?

转载 作者:行者123 更新时间:2023-11-29 12:37:44 31 4
gpt4 key购买 nike

我有一个父对象,它有一个子对象,可以有很多孙对象。

我正在寻找一个优雅的作用域,它可以与 PG 一起派生出至少有一个孙子对象的父对象。

class Parent < ActiveRecord::Base
has_many :childs
# scope :has_grandchildren ...
end

class Child < ActiveRecord::Base
has_many :grandchilds
belongs_to :parent
end

class Grandchild < ActiveRecord::Base
belongs_to :child
end

这可能吗?

最佳答案

class Parent < ActiveRecord::Base
has_many :childs
has_many :grandchilds, :through => :childs
scope :has_grandchildren, childs.includes(:grandchilds).group("childs.id").having("count(grandchilds.id) < 0")
end

class Child < ActiveRecord::Base
has_many :grandchilds
belongs_to :parent
end

class Grandchild < ActiveRecord::Base
belongs_to :child
end

我添加了 has_many through 关系,以防您以后需要它,尽管它是可选的。

关于ruby-on-rails - 我怎样才能称呼至少有一个 child 关系的 parent ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23495388/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com