2012-01-29 46 views
5

这是应用程序中的一种常见模式,我确信它有一个优雅的解决方案,但对于我来说,我找不到答案。一个大问题是我不知道该怎么称呼它!Rails 3:系统通知的策略

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

该做保养时注意事项,新功能,入职等

显然,这将需要生活在一些数据库,这个特殊的已经承认了这一特定消息的标志是常见的,但似乎如果没有经过深思熟虑的交付计划,可能会很快变得沉重而笨拙。

回答

2

查看my answer到类似的问题。

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

对于广播通知,你可以做的事厌恶如:

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

,如果不经常使用,不是什么大不了的事。