查询 rails 的正确方法有很多通过返回嵌套对象

Correct way to query rails has many through returning a nested object

我正在尝试找出访问对象集合 (Rails 4) 的“rails”方法。

我有一个团队模型、一个成员模型和一个 team_member 模型。一个团队可以有多个成员,一个成员可以在多个团队中。成员在每个团队中可以有不同的状态。

我设置了一个 has many through for teams and members (a team has many members through team_members)

我的问题是查询团队中所有活动团队成员的正确方法是什么,return成员的活动记录关系

现在我正在通过 team_id 和状态 ID(包括成员)查询 team_member 模型。这个 return 是一个 team_member 关系,我通过 team_member.member.first_name

访问成员

由于此查询运行后我不需要 team_member 上的任何其他信息,我想直接获取成员的结果并将其作为 member.first_name 处理。

提前致谢。

我会在两行之间尝试一些东西(未测试):

class Team
  has_many :team_members
  has_many :members, through: :team_members do
    def active
      where(team_members: { status: :active})
    end
  end
end

Team.last.members.active

我最终使用了类似这样的东西

Team.find(2).members.where(:team_members => {:status_id =>  1})

谢谢