gpt4 book ai didi

ruby-on-rails - Rails 中的深层关系

转载 作者:数据小太阳 更新时间:2023-10-29 07:38:43 25 4
gpt4 key购买 nike

我有一些项目。这些项目通过成员(member)制获得用户。

但是,这些用户属于公司。问题是,我如何找出哪些公司可以访问项目?

理想情况下,我可以执行 project.users.companies,但这行不通。

有没有一种好的、令人愉快的方式来做到这一点?

最佳答案

我假设你有这个:

class Project < ActiveRecord::Base
has_and_belongs_to_many :users
end

class User < ActiveRecord::Base
has_and_belongs_to_many :projects
belongs_to :company
end

class Company < ActiveRecord::Base
has_many :users
end

并且您想获得 project.companies。我能想象到的不那么痛苦的是:

class Project < ActiveRecord::Base
has_and_belongs_to_many :users
def companies
Company.all(
:joins => {:users => :projects},
:conditions => {'projects_users.project_id' => self.id}
).uniq
end
end

注意末尾的 uniq。它将删除重复的公司。

关于ruby-on-rails - Rails 中的深层关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2405706/

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