Ruby on rails 跟踪Rails上用户活动的通知系统

Ruby on rails 跟踪Rails上用户活动的通知系统,ruby-on-rails,thread-safety,gem,push-notification,Ruby On Rails,Thread Safety,Gem,Push Notification,我正在开发一个基于事件触发器生成通知的gem。例如,在CMS中,如果创建了一篇文章,将生成一个通知“article x created by user y”。(如Github/Facebook通知) 在我的gem中,我有一个has_notifications方法,当在模型中指定时,它会注册 问题当然是,当触发回调时,会调用gem中的相应操作,但此操作需要执行该操作的用户的用户id来生成通知。 我一直在寻找灵感,但两者都使用Thread.current变量来存储用户信息,我当然相信这是正确的 就基

我正在开发一个基于事件触发器生成通知的gem。例如,在CMS中,如果创建了一篇文章,将生成一个通知“article x created by user y”。(如Github/Facebook通知)

在我的gem中,我有一个has_notifications方法,当在模型中指定时,它会注册

问题当然是,当触发回调时,会调用gem中的相应操作,但此操作需要执行该操作的用户的用户id来生成通知。

我一直在寻找灵感,但两者都使用Thread.current变量来存储用户信息,我当然相信这是正确的

就基本设计而言,我做得对吗?要从我的gem中捕获用户信息,我还有哪些其他选择?我是否应该在各自的控制器中设置过滤器来创建通知,在这种情况下将使用vanilla current_user方法

任何想法都将不胜感激。谢谢

更新


我正在考虑为带有通知回调的模型使用虚拟属性,并使用before过滤器在适当的控制器中设置它们。

我建议模仿Cocoa中使用的通知模式。基本上,你可以将用户信息字典传递给你的通知,这样你就可以放置你想要的数据。

如果我对你的gem应该如何使用有正确的预感,我想带有通知回调的模型很可能与用户的关系,对吗

然后可以从关系中提取用户的数据,即
record.user
record.user\u id
。也许您可以默认为
#user
,并在用户关系命名不同时,通过“account”提供类似于
的选项has\u通知


如果模型没有关系,那么就由开发人员来传递用户对象,并通过自定义方法提供可访问的对象。

Hmm。用户可能会也可能不会与具有通知回调的模型关联。但是,是的,在某种程度上,我需要传递用户对象。谢谢嘿,伙计。我也将为通知创建一个gem。请为我们发明一种谈话/聊天的方式,以便我们在将来的用例中使用。