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

时间:2015-04-16 15:51:14

标签: ruby-on-rails activerecord has-many-through

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

我有团队模型,成员模型和团队成员模型。一个团队可以拥有多个成员,一个成员可以在多个团队中。会员可以在每个团队中拥有不同的身份。

我为团队和成员设置了很多通过(团队通过team_members有很多成员)

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

现在我通过team_id和status id(包括成员)查询team_member模型。这将返回team_member关系,并通过team_member.member.first_name

访问成员

因为一旦这个查询运行,我不需要team_member上的任何其他信息,我想直接获得成员的结果并将其作为member.first_name处理。

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

我最终使用了这样的东西

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

由于