这更像是一个大脑风暴问题 我想运行像
这样的东西学生模特
id
name
age
so on...
GameStatus模型
id
game_id
student_id
status
created_at
学生有很多game_statuses。 因此,每当学生打开游戏时,它都会被添加到game_status模型中
我想发送一些消息,例如...... Congratulation! You have completed 5 challenges in a row.
所以标记是5,10,15,20和30。
直到这里这很简单。我只是循环学生,然后循环他们的game_statuses,如果计数到达其中一个标记,我将发送一条消息。
但我想确保他们连续击中那些标记。
如同过去五天中的5天或过去10天中的10天没有被打破。 因此,上周最后1次一周后的一周3次,本周1次将返回5次,但不应该触发奖励。
我正在考虑查看created_at日期并检查它们是否在日期数组中,例如[今天,今天-1,今天-2,今天-3,今天-4]
@student = Student.find(param[:id])
@games = @student.game_statuses
total_games = []
for game in @games do
if game.status = 'completed'
total_games += game.id
end
end
return total_games.count
是否有可能以更优雅的方式实现这一目标?