带有Rails的Leaderboard API后端

时间:2015-02-19 12:47:31

标签: ruby-on-rails ruby-on-rails-4 leaderboard merit-gem

我试图围绕排行榜的概念设计API后端(针对移动应用)。

一些要求:

  • 我只对在验证某些规则后指定分数感兴趣
  • 后端应该是多应用:app1应该有一些规则,app2可以有另一套规则
  • 后端接收用户在移动应用上所做的操作,并且必须验证这些操作是否有效并分配点
  • 规则可以是:
  

如果您是第一次在24小时内看到操作A,则向用户提供10分

     

如果行动B发生,则给予用户10分,但如果您每周看到行动B超过10次,则不给予积分

  • 必须记录以前的操作,以便将其报告给移动应用

  • 计算积分,排行榜得分和报告(在给定的时间范围内)

我调查了merit,但我不明白模型是否可以有多个点规则文件(例如:userA属于appA所以规则B不适用于他)以及是否&# 39;每个动作的痕迹或只是当前的分数。

简而言之:是否应该支持所有这些?如果没有,你有什么建议?

1 个答案:

答案 0 :(得分:0)

Merit并不支持所有开箱即用的功能,但提供足够的基础设施来解决所有问题,并提供一些额外的代码。

  

后端应该是多应用程序:app1应该有一些规则,app2可以有另一套规则

您是否希望后端成为所有移动应用的单一应用程序计算声誉?如果是这样,移动应用程序的命名空间路由将解决此问题。例如,/app1/purchased/app2/won可以映射到不同的操作,并遵循该约定,确保每个应用都有自己的一套规则。

  

必须记录以前的操作,以便将其报告给移动应用

有一个merit_activity_logs表,其中包含发生的每个操作的跟踪。通过它,您可以构建一些逻辑,以便您的移动应用程序向用户显示其先前的活动。

  

计算点数,排行榜得分和报告(在给定的时间范围内)

计算点开箱即用,保留每次更改的历史记录。以前有Merit::Badge.last_grantedMerit::Score.top_scored,但我删除了,因为它是特定于应用的,需要太多配置。查看查询的方式可能对您有用:


你提到的其他功能都有开箱即用的优点。