Rails 3:系统通知策略

时间:2012-01-29 19:03:23

标签: ruby-on-rails-3 notifications

这是应用程序中的常见模式,我确信它有一个优雅的解决方案,但对于我的生活,我找不到答案。一个大问题是我不知道该怎么称呼它!

我正在尝试找到适当的解决方案,为系统的每个用户提供一次性通知。当该用户确认或关闭通知时,他们不再亲自看到它,但其他用户将在他们确认之前。

这在执行维护通知,新功能,登机等时很常见。

显然,这需要作为一个标志生活在某个数据库中,这个特定的标志已经承认了这个特定的信息,但是如果没有经过深思熟虑的计划来实现这些,这似乎很快就会变得沉重和笨拙。

1 个答案:

答案 0 :(得分:2)

请参阅my answer类似的问题。

消息作为序列化数组存在于我的用户模型中。这样我可以使用简单的数组方法,如#push来获取新消息。用户只处理特定于他们的邮件,使用#delete_at取消单个邮件,或#clear取消所有邮件。

对于广播通知,您可以做一些令人讨厌的事情:

User.all.map {|x| x.messages.push "You have been notified." ; x.save }

,如果不经常使用的话,并不是那么重要。