2012-01-29 7 views
5

Este es un patrón común entre las aplicaciones y estoy seguro de que tiene una solución elegante, pero por mi vida no puedo encontrar una respuesta. ¡Un gran problema es que no sé cómo llamarlo!Rails 3: Estrategia para las notificaciones del sistema

Estoy tratando de encontrar la solución adecuada para dar notificaciones de una sola vez a cada usuario de un sistema. Cuando ese usuario reconoce o cierra la notificación, no la vuelve a ver personalmente, pero otros usuarios lo harán hasta que la reconozcan.

Esto es común cuando se hace avisos de mantenimiento, nuevas características, de incorporación, etc.

Obviamente, esto tendría que vivir en alguna base de datos como un indicador de que este particular ha reconocido este mensaje en particular, pero parece así podría volverse pesado e inmanejable rápidamente sin un plan bien pensado para entregarlos.

Respuesta

2

Consulte my answer para una pregunta similar.

Los mensajes se almacenan en mi modelo de usuario como una matriz serializada. De esta forma puedo usar métodos de matriz simple como #push para nuevos mensajes. Los usuarios solo se ocupan de los mensajes específicos para ellos, usando #delete_at para cancelar mensajes individuales, o #clear para cancelarlos todos.

Para las notificaciones de difusión, se podría hacer algo tan desagradable como:

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

que, si se utiliza con poca frecuencia, no es tan grande de un acuerdo.

Cuestiones relacionadas