rails models relation - 寻找最简单的代码

时间:2013-07-10 12:01:04

标签: ruby-on-rails database model

初学者问题:

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

我正在寻找列出当天所有参与者的最简单方法。我也试图做一个简单的"计数"了解在一个日期有多少参与者。

Activity.last.participants.count

告诉我这次活动的参与者人数

Activity.where(avtivity_date: Date.today)

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

我正在寻找类似的东西:

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

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

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

谢谢!

2 个答案:

答案 0 :(得分:1)

您需要连接两个表

Activity.where(activity_date: Date.today).joins(:participants).count

答案 1 :(得分:1)

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

Activity.where(activity_date: Date.today).select(:participant_id).group(:participant_id).count