【问题标题】:Correct way to query rails has many through returning a nested object通过返回嵌套对象来查询 rails 的正确方法有很多
【发布时间】:2015-04-16 15:51:13
【问题描述】:

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

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

我为团队和成员设置了一个 has many through(一个团队通过 team_members 有很多成员)

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

现在我正在通过 team_id 和状态 id 查询 team_member 模型,包括成员。这将返回一个 team_member 关系,我通过 team_member.member.first_name 访问成员

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

提前致谢。

【问题讨论】:

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


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      我最终使用了类似的东西

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

      谢谢

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-10
        • 1970-01-01
        • 2013-08-20
        • 2019-08-16
        • 1970-01-01
        • 1970-01-01
        • 2018-01-28
        • 1970-01-01
        相关资源
        最近更新 更多