这是应用程序中的常见模式,我确信有一个优雅的解决方案,但我一生都找不到答案。一个大问题是我不太知道该怎么调用它!
我正在尝试找到正确的解决方案来向系统的每个用户提供一次性通知。当该用户确认或关闭通知时,他们个人不会再次看到该通知,但其他用户会看到该通知,直到他们确认为止。
这在维护通知、新功能、入职等方面很常见。
显然,这需要存在于某个数据库中,作为此特定消息已确认此特定消息的标志,但如果没有经过深思熟虑的传递这些消息的计划,这似乎很快就会变得沉重且难以处理。
最佳答案
参见my answer类似的问题。
消息作为序列化数组存在于我的用户模型中。这样我就可以使用简单的数组方法,例如 #push
来获取新消息。用户仅处理特定于他们的消息,使用 #delete_at
取消单个消息,或使用 #clear
取消所有消息。
对于广播通知,您可以做一些令人讨厌的事情,例如:
User.all.map {|x| x.messages.push "You have been notified." ; x.save }
如果不经常使用,也没什么大不了的。
关于ruby-on-rails-3 - 轨道 3 : Strategy for system notifications,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9055840/