Ruby on rails activerecord新手;获取所有性别为男性/女性的个人资料?

Ruby on rails activerecord新手;获取所有性别为男性/女性的个人资料?,ruby-on-rails,ruby-on-rails-3,activerecord,relation,Ruby On Rails,Ruby On Rails 3,Activerecord,Relation,我想让所有的@参与者都知道性别是男性还是女性。 我刚刚浮出水面,现在深入挖掘所有可能性,但发现很难完成这个查询 用户(用户\u id)具有\u配置文件 配置文件属于用户 参与者(参与者id)属于用户、配置文件 我正在尝试获取所有参与者的参与者id,他们的个人资料(用户id)中的性别为“男性”或“女性” 让@participants\u男性填写结果的最佳捷径是什么 我不知道如何摆脱与where声明的关系,有人能帮我找到正确的方向吗?谢谢 @participants_male = Partici

我想让所有的@参与者都知道性别是男性还是女性。 我刚刚浮出水面,现在深入挖掘所有可能性,但发现很难完成这个查询

  • 用户(用户\u id)具有\u配置文件
  • 配置文件属于用户
  • 参与者(参与者id)属于用户、配置文件
我正在尝试获取所有参与者的参与者id,他们的个人资料(用户id)中的性别为“男性”或“女性”

让@participants\u男性填写结果的最佳捷径是什么

我不知道如何摆脱与where声明的关系,有人能帮我找到正确的方向吗?谢谢

@participants_male = Participant.where(
上的rails指南是一个很好的资源。您的查询如下所示:

@males = Participant.joins(:profiles).where('profiles.gender = "male"')
或者您可以使用
包含
而不是
连接

@males = Participant.includes(:profiles).where('profiles.gender = "male"')
看看哪一个适合您的具体情况。

上的rails指南是一个很好的资源。您的查询如下所示:

@males = Participant.joins(:profiles).where('profiles.gender = "male"')
或者您可以使用
包含
而不是
连接

@males = Participant.includes(:profiles).where('profiles.gender = "male"')

查看哪一个适合您的具体情况。

性别是用户表中的一列?如果是:

@participants_male = Participant.includes(:users).where("users.gender = 'male'")
编辑-如果档案表中有性别:

@participants_male = Participant.includes(:profiles).where("profiles.gender = 'male'")

我还建议查看railscast以了解
连接
包含
之间的区别,这样您就可以决定在您的情况下什么更好

性别是用户表中的一列吗?如果是:

@participants_male = Participant.includes(:users).where("users.gender = 'male'")
编辑-如果档案表中有性别:

@participants_male = Participant.includes(:profiles).where("profiles.gender = 'male'")

我还建议查看railscast以了解
连接
包含
之间的区别,这样您就可以决定在您的情况下什么更好

好的,所以试过这个,阅读joins vs includes。您的示例似乎符合逻辑,但抛出了一个“未找到名为'profiles'的关联;可能是您拼写错误?”的示例,因此它与参与者无关。您的关联有问题。你能在你的问题中加入模型吗……但这仍然不起作用。我想我应该更新问题,提供更多关于模型和关系的详细信息。今晚必须这样做。是的,请澄清参与者和个人资料之间的关系,因为您说过
参与者属于\u profile
,但您没有说
profile有很多(或任何)参与者。它们是如何连接的?好的,所以尝试了这一点并阅读了joins vs includes。您的示例似乎符合逻辑,但抛出了一个“未找到名为'profiles'的关联;可能是您拼写错误?”的示例,因此它与参与者无关。您的关联有问题。你能在你的问题中加入模型吗……但这仍然不起作用。我想我应该更新问题,提供更多关于模型和关系的详细信息。今晚必须这样做。是的,请澄清参与者和个人资料之间的关系,因为您说过
参与者属于\u profile
,但您没有说
profile有很多(或任何)参与者。它们是如何连接的?