我试图让所有性别为男性或女性的@参与者。 我刚刚浮出水面,现在正在深入研究所有可能性,但发现很难完成这个查询。
我试图让所有参与者都使用participant_id,其中有个人资料(user_id),他们有性别='男性'或'女性'
让@participants_male填充结果的最佳最短路径是什么?
我不确定如何从与where声明的关系中解脱出来,任何人都可以帮助我朝正确的方向发展? THX!
@participants_male = Participant.where(
答案 0 :(得分:2)
active record queries上的导轨指南是一个很好的资源。您的查询看起来像这样:
@males = Participant.joins(:profiles).where('profiles.gender = "male"')
或者您可以使用includes
代替joins
@males = Participant.includes(:profiles).where('profiles.gender = "male"')
查看includes vs joins,看看哪种情况适合您的具体情况。
答案 1 :(得分:2)
性别是users表中的一列?如果是这样的话:
@participants_male = Participant.includes(:users).where("users.gender = 'male'")
编辑 - 如果性别在个人资料表中:
@participants_male = Participant.includes(:profiles).where("profiles.gender = 'male'")
我还建议您检查this railscast以了解joins
和includes
之间的区别,以便您可以决定哪种情况更好。