gpt4 book ai didi

mysql - has_many 上的条件通过

转载 作者:行者123 更新时间:2023-11-29 23:20:03 27 4
gpt4 key购买 nike

我有三门课 TeamMember , ServiceServiceTeamMember

我有

class Service
has_many :service_team_members
has_many :team_members, through: :service_team_members
end

class ServiceTeamMember
belongs_to :service
belongs_to :team_member
end

class TeamMember
has_many :service_team_members
has_many :services, through: :service_team_members
end

现在,在我网站的某个区域,我想急切地加载部门,其中部门是顶级服务,我正在使用祖先,所以您需要知道的是部门是 ancestry 的服务。的NULL

所以我需要一个实际的关联,这样我就可以急切地加载它而不是范围。

我尝试过添加它

has_many :departments, -> { where(ancestry: nil) }, through: :service_team_members, source: :service

但我收到以下错误

Mysql2::Error: Unknown column 'services.ancestry' in 'where clause': SELECT `service_team_members`.* FROM `service_team_members`  WHERE `services`.`ancestry` IS NULL AND `service_team_members`.`team_member_id` IN (28, 32)

所以rails将我的条件应用到连接表而不是我想要的表。我怎样才能解决这个问题,我认为这是一个简单的解决方案,但我遗漏了一些明显的东西。

最佳答案

只需将 source: :service 更改为 source: :team_member

关于mysql - has_many 上的条件通过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27404103/

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