ruby-on-rails - 您将如何在 RoR 中创建一个通知系统,例如在 SO 或 Facebook 上?

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

我认为通知将是它自己的资源,并且与用户模型具有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/

相关文章:

ruby-on-rails - 在登录时设计一个 session 变量

ruby-on-rails - 依次查找关联为nil的所有记录

ruby-on-rails - 无论支架宽度如何,都强制我的 div 扩展

html - 如何使用 Nokogiri 漂亮地打印 HTML?

ruby - 无法使用 watir/taza/rspec 运行测试执行

ruby-on-rails-3 - 调用 expire_fragment 引发 "to use #url_for, you must include routing helpers explicitly"错误

ruby-on-rails - 如何在 Rails 控制台中查找和删除部分字符串 - ActiveRecord

ruby-on-rails - 脚手架生成的 rspec Controller 测试在工厂创建的模型上返回 nil

ruby-on-rails - 如何修复 Mechanize::ChunkedTerminationError?

ruby-on-rails-3 - Rails 3 - 我怎样才能摆脱 "test.host"?