Rails 3:系统通知策略

Joh*_*n R 5 notifications ruby-on-rails-3

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

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

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

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

Sub*_*ial 2

请参阅对类似问题的回答。

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

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

User.all.map {|x| x.messages.push "You have been notified." ; x.save }
Run Code Online (Sandbox Code Playgroud)

如果不经常使用,也没什么大不了的。