我有一些事件,人们。它们之间存在多对多的关系,因此有一个 PersonEvent 将事件连接到人。
事件有日期和类型
PersonEvent 有一个 event_id 和一个 person_id
人有名字
我正在尝试构建一个搜索表单,允许用户按活动类型进行搜索,然后返回过去参加过该类型活动的人员列表以及他们参加此类活动的最后日期。这应该在控制器中。
我能想到的唯一解决方案涉及嵌套循环,并且可能会运行得很慢。我肯定会遍历很多我不需要的东西。
For each person in Person.all
For each personevent in PersonEvent.all
Add the personevent to an array if the person_event.event.type is correct
Now, loop through the array and find the event with the latest date. That's the date of the last Event attendance.
任何人都可以提出更好的算法吗?