【问题标题】:How would you create a notification system like on SO or Facebook in RoR?您将如何在 RoR 中创建类似 SO 或 Facebook 的通知系统?
【发布时间】:2011-08-02 18:18:59
【问题描述】:

我认为通知将是它自己的资源,并且与用户模型具有has_many, through 关系,并带有一个表示关联的连接表。

一个用户有很多通知是显而易见的,然后一个通知会有很多用户,因为会有很多标准化的通知(评论通知、关注通知等)会与很多用户相关联。

除此设置外,我不确定如何根据应用程序中的某些事件触发创建通知。我也有点不确定我需要如何设置路由 - 它是自己的单独资源还是嵌套在用户资源中?如果有人可以对此进行扩展,我会发现它非常有帮助。

最后,ajax 轮询可能会改进这样的功能。

我可能遗漏了一些东西,所以请填写它,以便它成为一个很好的通用资源。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 notifications push-notification


    【解决方案1】:

    所以一般要点:

    1) 通知将是一个多态关联,因为 cmets 可以有很多通知,用户可以有很多通知,“关注”可以有很多通知等。

    2) 您可以拥有Model Observers,您可以在其中“观察”某些事件,例如创建新评论时。这将是你的触发器。

    在路由方面,您真的不需要做任何不规范的事情。您可能拥有的唯一路由是显示所有通知的 domain.com/notifications。

    通知表可能如下所示:

    sender_id:整数,receiver_id:整数,notifiable_id:整数,notifiable_type:字符串

    【讨论】:

    【解决方案2】:
    1. 对于通知系统,我个人更喜欢服务器推送技术。 Ryan Bates(Railscasts 背后的声音)有一个great screen cast,你可能想看看

    2. 要触发特定事件的操作,请查看@mike 提到的“观察者”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      • 2015-01-27
      • 1970-01-01
      相关资源
      最近更新 更多