按顺序日期对数组进行分组

时间:2015-09-22 03:03:50

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4

这更像是一个大脑风暴问题 我想运行像

这样的东西

学生模特

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

是否有可能以更优雅的方式实现这一目标?

0 个答案:

没有答案