1

初学者问题:

一个活动可以有多个参与者。每个活动都有一个日期,但您可以在同一天进行不同的活动。连接表在参与者和活动之间建立了联系。

我正在寻找列出当天所有参与者的最简单方法。此外,我正在尝试进行简单的“计数”,以了解一次约会中有多少参与者。

Activity.last.participants.count

给我这个单一活动的参与者人数

Activity.where(avtivity_date: Date.today)

给我一个包含当天所有活动的数组。所以我必须遍历它们中的每一个来计算或列出参与者并进行总和。

我正在寻找类似的东西:

Activity.where(avtivity_date: Date.today).participants.count

返回当天的参与者人数。这可能吗?我应该继续迭代和计数吗?

我不确定我可以用来进行文档搜索的关键字,任何提示/文档链接将不胜感激!

谢谢!

4

2 回答 2

1

你需要两个表的连接

Activity.where(activity_date: Date.today).joins(:participants).count
于 2013-07-10T12:17:24.663 回答
1

您可以使用selectandgroup子句选择当天的所有参与者。然后使用.count

Activity.where(activity_date: Date.today).select(:participant_id).group(:participant_id).count
于 2013-07-10T12:22:49.170 回答