gpt4 book ai didi

ruby-on-rails - 我可以通过 activerecord 关系(使用祖先 gem 时)创建 activerecord 关联吗?

转载 作者:行者123 更新时间:2023-12-04 06:00:16 25 4
gpt4 key购买 nike

我正在使用 ancestry gem在我的 rails 项目中创建组的层次结构。一个组可以属于一个父组并且可以有多个子组。每个组可以有多个属于一个组的用户。该模型如下所示:

class Group < ActiveRecord::Base
has_ancestry

has_many :users
end

我希望能够为一个组的后代获取所有用户,如下所示:
class Group < ActiveRecord::Base
has_ancestry

has_many :users
has_many :descendants_users, through: :descendants
end

当然,这不起作用。

有什么建议?

最佳答案

在您的 Group 模型中定义一个这样的方法。

def descendants_users
User.joins(:groups).where(:group_id => self.subtree_ids) # Use descendant ids if you dont't want 'self' users
end

这将执行 1 查询以获取 subtree_ids 和 1 查询获取用户,结果已经是不同的用户集。

关于ruby-on-rails - 我可以通过 activerecord 关系(使用祖先 gem 时)创建 activerecord 关联吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13090848/

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