ruby-on-rails - sintaxis - ruby on rails tutorial español pdf
¿Cómo crearías un sistema de notificación como SO o Facebook en RoR? (2)
Para un sistema de notificación, personalmente prefiero la tecnología de servidor push. Ryan Bates (la voz detrás de Railscasts) tiene un gran elenco de pantalla que es posible que desee ver
Para desencadenar acciones para un evento particular, eche un vistazo a ''Observadores'' como @mike mencionó
Estoy pensando que las notificaciones serían su propio recurso y que tienen una relación has_many, through
del modelo de usuario con una tabla de unión que representa las asociaciones.
Un usuario que tiene muchas notificaciones es obvio, y luego una notificación tendría muchos usuarios porque habría una serie de notificaciones estandarizadas (una notificación de comentario, una notificación siguiente, etc.) que se asociarían con muchos usuarios.
Más allá de esta configuración, no estoy seguro de cómo activar la creación de notificaciones basadas en ciertos eventos en su aplicación. También estoy un poco inseguro de cómo tendría que configurar el enrutamiento: ¿sería un recurso separado o anidado en el recurso del usuario? Me resultaría muy útil si alguien pudiera ampliar esto.
Por último, la encuesta ajax probablemente mejoraría dicha función.
Probablemente falten algunas cosas, así que por favor complete esto para que sea un buen recurso general.
Entonces la esencia general:
1) Las notificaciones serían una asociación polimórfica en que los comentarios pueden tener muchas notificaciones, los usuarios pueden tener muchas notificaciones, un ''siguiente'' puede tener muchas notificaciones, etc.
2) Puede tener Observadores de Modelos , donde puede "observar" ciertos eventos, como cuando se crea un nuevo comentario. Este sería tu disparador.
En términos de enrutamiento, realmente no necesita hacer nada fuera de lo normal. El único enrutamiento que puede tener es un dominio / notificaciones donde muestra todas las notificaciones.
La tabla de notificaciones puede verse así:
sender_id: integer, receiver_id: integer, notifiable_id: integer, notifiable_type: string