我想创建一个基于事件的通知和徽章系统,以便在用户完成特定目标时奖励他们。目标可能包括:
这是AASM等状态机的工作吗?我没有玩过这样的系统。这是定义事件的方法还是有更好的插件/解决方案来适应这种行为?任何有关方法的教程或建议都将不胜感激。
答案 0 :(得分:1)
这里似乎很棘手的部分是弄清楚你想要如何保持确定何时颁发徽章所需的状态。用于rails的状态机插件对你没有多大帮助。
例如,一段代码如何确定用户是否已连续10天登录?一旦你搞清楚了,你就可以担心如何组织事件处理。
您是否需要在获得徽章时实时通知他们?如果是这样,那么你可以使用ActiveRecord :: Observer轻松完成这项任务,但在长途运行中可能会遇到一些延迟问题(http://api.rubyonrails.org/classes/ActiveRecord/Observer.html)
如果您不需要实时执行此操作,则可以使用某种形式的后台作业执行此操作。那里有很多用于后台工作的库。当我不关心缩放并且想要快速获得某些东西时,我会使用workling。