我希望这将是简单的,但本质上,我希望通过Rails 4中的联接表来统计具有某些属性的用户数量。
我有一个名为Views的表,它包含三列:
t.references :viewer
t.references :viewed
t.boolean :sentmessage, default: false然后,我将字段引用作为:
belongs_to :viewer, :class_name => "User"
belongs_to :viewed, :class_name => "User"然后,每个用户记录都与许多其他记录相关联,如统计、问题和许多其他记录。我感兴趣的是有效地计算出一个viewed记录中有多少是男性还是女性(以及其他搜索字段),这些数据都保存在User.stat.gender.name中,等等。
我试图使用group语句,但不知道如何向下钻取和计数男性数量等。我尝试过:
@results = View.where(viewed: 63).group("viewer.stat.gender")但这是如此的错误,令人恐惧。
如果能提供任何帮助,我们将不胜感激。
发布于 2015-09-15 06:36:37
我终于解决了。对于其他感兴趣的人:
View.where(viewed_id: 63).joins(viewer: {stat: :gender}).group("name").count没有意识到内部连接是什么,只是一些研究和一些尝试和错误意味着我现在可以显示关于访问过的用户的信息。
https://stackoverflow.com/questions/32327506
复制相似问题