2012-01-29 6 views
5

Questo è un modello comune tra le app e sono sicuro che ha una soluzione elegante, ma per la vita di me non riesco a trovare una risposta. Un grosso problema è che non so come chiamarlo!Rails 3: Strategia per le notifiche di sistema

Sto cercando di trovare la soluzione adeguata per dare notifiche una tantum a tutti gli utenti di un sistema. Quando quell'utente riconosce o chiude la notifica, non la rivede personalmente, ma gli altri utenti lo faranno fino a quando non lo riconosceranno.

Questo è comune quando si fa avvisi di manutenzione, nuove funzionalità, on-boarding, ecc

Ovviamente, questo avrebbe bisogno di vivere in qualche database come una bandiera che questo particolare ha riconosciuto questo particolare messaggio, ma sembra come quello potrebbe diventare pesante e ingombrante rapidamente senza un piano ben pensato per la consegna di questi.

risposta

2

Vedere my answer per una domanda simile.

I messaggi vivono nel mio modello utente come un array serializzato. In questo modo posso utilizzare semplici metodi di array come #push per i nuovi messaggi. Gli utenti gestiscono solo messaggi specifici, utilizzando #delete_at per annullare singoli messaggi o #clear per annullarli tutti.

Per le notifiche di trasmissione, si potrebbe fare qualcosa di antipatico come:

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

che, se usato di rado, non è poi così grande di un affare.

Problemi correlati