2012-01-29 87 views
5

這是應用程序中的一種常見模式,我確信它有一個優雅的解決方案,但對於我來說,我找不到答案。一個大問題是我不知道該怎麼稱呼它!Rails 3:系統通知的策略

我試圖找到適當的解決方案,爲系統的每個用戶提供一次性通知。當用戶確認或關閉通知時,他們不會再親自看到它,但是其他用戶將會直到他們確認爲止。

該做保養時注意事項,新功能,入職等

顯然,這將需要生活在一些數據庫,這個特殊的已經承認了這一特定消息的標誌是常見的,但似乎如果沒有經過深思熟慮的交付計劃,可能會很快變得沉重而笨拙。

回答

2

查看my answer到類似的問題。

消息作爲序列化數組存在我的用戶模型中。這樣我可以使用簡單的數組方法,如#push用於新消息。用戶只處理特定於他們的消息,使用#delete_at取消單個消息,或者使用#clear將其全部取消。

對於廣播通知,你可以做的事厭惡如:

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

,如果不經常使用,不是什麼大不了的事。