私はいくつかのイベント、人を持っています。それらの間には多対多の関係があるため、イベントを People に接続する 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.
誰でもより良いアルゴリズムを提案できますか?