我认为通知将是它自己的资源,并且与用户模型具有has_many, through
关系,并带有表示关联的连接表。
一个用户有很多通知是显而易见的,然后一个通知就会有很多用户,因为会有许多与许多用户相关联的标准化通知(评论通知、关注通知等)。
除此设置外,我不确定如何根据应用程序中的某些事件触发通知的创建。我也有点不确定我需要如何设置路由——它是自己单独的资源还是嵌套在用户资源中?如果有人可以对此进行扩展,我会发现它非常有帮助。
最后,ajax 轮询可能会改进此类功能。
可能有些东西我遗漏了,所以请填写这个,这是一个很好的通用资源。
最佳答案
总的来说:
1) 通知将是一个多态关联,因为评论可以有很多通知,用户可以有很多通知,“关注”可以有很多通知等。
2) 你可以有 Model Observers ,您可以在其中“观察”某些事件,例如何时创建新评论。这将是你的触发器。
在路由方面,你真的不需要做任何不正常的事情。您可能拥有的唯一路由是 domain.com/notifications,其中显示所有通知。
通知表可能如下所示:
sender_id:整数,receiver_id:整数,notifiable_id:整数,notifiable_type:字符串
关于ruby-on-rails - 您将如何在 RoR 中创建一个通知系统,例如在 SO 或 Facebook 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5616614/